Mercurial > repos > public > sbplib
annotate Cell.m @ 472:1dcac646c514 feature/sublassable_cellarray
Add some missing semicolon
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Wed, 02 Aug 2017 09:34:26 +0200 |
parents | 365fcdbb8736 |
children | 605a8c075388 |
rev | line source |
---|---|
467 | 1 classdef Cell |
2 properties | |
3 data | |
4 end | |
5 methods | |
6 function obj = Cell(data) | |
7 if ~iscell(data) | |
8 class(data) | |
472
1dcac646c514
Add some missing semicolon
Jonatan Werpers <jonatan@werpers.com>
parents:
469
diff
changeset
|
9 error('Input argument to Cell must be a cell array'); |
467 | 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 a = subsasgn(A.data, S, B); | |
468
13362cf4dd89
Make the overloaded methods call the subclass constructor
Jonatan Werpers <jonatan@werpers.com>
parents:
467
diff
changeset
|
32 A = callConstructor(A, a); |
467 | 33 end |
34 | |
35 function B = subsref(A, S) | |
469
365fcdbb8736
Implement subsref properly
Jonatan Werpers <jonatan@werpers.com>
parents:
468
diff
changeset
|
36 switch S(1).type |
365fcdbb8736
Implement subsref properly
Jonatan Werpers <jonatan@werpers.com>
parents:
468
diff
changeset
|
37 case '()' |
365fcdbb8736
Implement subsref properly
Jonatan Werpers <jonatan@werpers.com>
parents:
468
diff
changeset
|
38 b = subsref(A.data, S); |
365fcdbb8736
Implement subsref properly
Jonatan Werpers <jonatan@werpers.com>
parents:
468
diff
changeset
|
39 B = callConstructor(A, b); |
365fcdbb8736
Implement subsref properly
Jonatan Werpers <jonatan@werpers.com>
parents:
468
diff
changeset
|
40 case '{}' |
365fcdbb8736
Implement subsref properly
Jonatan Werpers <jonatan@werpers.com>
parents:
468
diff
changeset
|
41 B = subsref(A.data, S); |
365fcdbb8736
Implement subsref properly
Jonatan Werpers <jonatan@werpers.com>
parents:
468
diff
changeset
|
42 case '.' |
365fcdbb8736
Implement subsref properly
Jonatan Werpers <jonatan@werpers.com>
parents:
468
diff
changeset
|
43 B = builtin('subsref',A, S); |
365fcdbb8736
Implement subsref properly
Jonatan Werpers <jonatan@werpers.com>
parents:
468
diff
changeset
|
44 otherwise |
472
1dcac646c514
Add some missing semicolon
Jonatan Werpers <jonatan@werpers.com>
parents:
469
diff
changeset
|
45 error('unreachable'); |
469
365fcdbb8736
Implement subsref properly
Jonatan Werpers <jonatan@werpers.com>
parents:
468
diff
changeset
|
46 end |
467 | 47 end |
48 | |
49 function C = horzcat(varargin) | |
50 dataArray = cell(1, length(varargin)); | |
51 | |
52 for i = 1:length(varargin) | |
53 dataArray{i} = varargin{i}.data; | |
54 end | |
55 | |
56 c = horzcat(dataArray{:}); | |
468
13362cf4dd89
Make the overloaded methods call the subclass constructor
Jonatan Werpers <jonatan@werpers.com>
parents:
467
diff
changeset
|
57 C = callConstructor(varargin{1}, c); |
467 | 58 end |
59 | |
60 function vertcat(varargin) | |
61 dataArray = cell(1, length(varargin)); | |
62 | |
63 for i = 1:length(varargin) | |
64 dataArray{i} = varargin{i}.data; | |
65 end | |
66 | |
67 c = vertcat(dataArray{:}); | |
468
13362cf4dd89
Make the overloaded methods call the subclass constructor
Jonatan Werpers <jonatan@werpers.com>
parents:
467
diff
changeset
|
68 C = callConstructor(varargin{1}, c); |
467 | 69 end |
70 end | |
468
13362cf4dd89
Make the overloaded methods call the subclass constructor
Jonatan Werpers <jonatan@werpers.com>
parents:
467
diff
changeset
|
71 end |