Mercurial > repos > public > sbplib
comparison Cell.m @ 467:8d3c3da3a589 feature/sublassable_cellarray
Initial commit
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Tue, 01 Aug 2017 09:28:10 +0200 |
parents | |
children | 13362cf4dd89 |
comparison
equal
deleted
inserted
replaced
466:e1a59aafe99c | 467:8d3c3da3a589 |
---|---|
1 classdef Cell | |
2 properties | |
3 data | |
4 end | |
5 methods | |
6 function obj = Cell(data) | |
7 if ~iscell(data) | |
8 class(data) | |
9 error('Input argument to Cell must be a cell array') | |
10 end | |
11 | |
12 obj.data = data; | |
13 end | |
14 | |
15 % function display(A) | |
16 % n = size(A.data); | |
17 | |
18 % sizeStr = join(cellfun(@num2str, num2cell(n), 'UniformOutput',false),'x'); | |
19 % header = [sizeStr, 'Cell'] | |
20 | |
21 % disp() | |
22 % disp(A.data) | |
23 % % display(A.data) | |
24 % end | |
25 | |
26 function disp(A) | |
27 disp(A.data) | |
28 end | |
29 | |
30 function A = subsasgn(A, S, B) | |
31 disp(S); | |
32 a = subsasgn(A.data, S, B); | |
33 A = Cell(a); | |
34 end | |
35 | |
36 function B = subsref(A, S) | |
37 disp(S); | |
38 B = subsref(A.data, S); | |
39 % Wrong if type is '()', '.' | |
40 end | |
41 | |
42 function C = horzcat(varargin) | |
43 dataArray = cell(1, length(varargin)); | |
44 | |
45 for i = 1:length(varargin) | |
46 dataArray{i} = varargin{i}.data; | |
47 end | |
48 | |
49 c = horzcat(dataArray{:}); | |
50 C = Cell(c); | |
51 end | |
52 | |
53 function vertcat(varargin) | |
54 dataArray = cell(1, length(varargin)); | |
55 | |
56 for i = 1:length(varargin) | |
57 dataArray{i} = varargin{i}.data; | |
58 end | |
59 | |
60 c = vertcat(dataArray{:}); | |
61 C = Cell(c); | |
62 end | |
63 end | |
64 end |