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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
467
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
1 classdef Cell
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
2 properties
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
3 data
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
4 end
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
5 methods
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
6 function obj = Cell(data)
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
7 if ~iscell(data)
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
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
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
10 end
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
11
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
12 obj.data = data;
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
13 end
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
14
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
15 % function display(A)
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
16 % n = size(A.data);
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
17
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
18 % sizeStr = join(cellfun(@num2str, num2cell(n), 'UniformOutput',false),'x');
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
19 % header = [sizeStr, 'Cell']
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
20
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
21 % disp()
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
22 % disp(A.data)
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
23 % % display(A.data)
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
24 % end
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
25
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
26 function disp(A)
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
27 disp(A.data)
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
28 end
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
29
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
30 function A = subsasgn(A, S, B)
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
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
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
33 end
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
34
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
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
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
47 end
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
48
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
49 function C = horzcat(varargin)
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
50 dataArray = cell(1, length(varargin));
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
51
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
52 for i = 1:length(varargin)
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
53 dataArray{i} = varargin{i}.data;
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
54 end
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
55
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
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
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
58 end
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
59
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
60 function vertcat(varargin)
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
61 dataArray = cell(1, length(varargin));
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
62
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
63 for i = 1:length(varargin)
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
64 dataArray{i} = varargin{i}.data;
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
65 end
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
66
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
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
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
69 end
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
70 end
468
13362cf4dd89 Make the overloaded methods call the subclass constructor
Jonatan Werpers <jonatan@werpers.com>
parents: 467
diff changeset
71 end