annotate Cell.m @ 473:605a8c075388 feature/sublassable_cellarray

Add to string stub.
author Jonatan Werpers <jonatan@werpers.com>
date Wed, 02 Aug 2017 09:34:45 +0200
parents 1dcac646c514
children c91464ef1dd9
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
473
605a8c075388 Add to string stub.
Jonatan Werpers <jonatan@werpers.com>
parents: 472
diff changeset
15 % function str = toString(obj)
605a8c075388 Add to string stub.
Jonatan Werpers <jonatan@werpers.com>
parents: 472
diff changeset
16
605a8c075388 Add to string stub.
Jonatan Werpers <jonatan@werpers.com>
parents: 472
diff changeset
17 % end
605a8c075388 Add to string stub.
Jonatan Werpers <jonatan@werpers.com>
parents: 472
diff changeset
18
467
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
19 % function display(A)
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
20 % n = size(A.data);
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
21
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
22 % sizeStr = join(cellfun(@num2str, num2cell(n), 'UniformOutput',false),'x');
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
23 % header = [sizeStr, 'Cell']
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
24
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
25 % disp()
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
26 % disp(A.data)
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
27 % % display(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 disp(A)
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
31 disp(A.data)
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
32 end
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
33
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
34 function A = subsasgn(A, S, B)
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
35 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
36 A = callConstructor(A, a);
467
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
37 end
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
38
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
39 function B = subsref(A, S)
469
365fcdbb8736 Implement subsref properly
Jonatan Werpers <jonatan@werpers.com>
parents: 468
diff changeset
40 switch S(1).type
365fcdbb8736 Implement subsref properly
Jonatan Werpers <jonatan@werpers.com>
parents: 468
diff changeset
41 case '()'
365fcdbb8736 Implement subsref properly
Jonatan Werpers <jonatan@werpers.com>
parents: 468
diff changeset
42 b = subsref(A.data, S);
365fcdbb8736 Implement subsref properly
Jonatan Werpers <jonatan@werpers.com>
parents: 468
diff changeset
43 B = callConstructor(A, b);
365fcdbb8736 Implement subsref properly
Jonatan Werpers <jonatan@werpers.com>
parents: 468
diff changeset
44 case '{}'
365fcdbb8736 Implement subsref properly
Jonatan Werpers <jonatan@werpers.com>
parents: 468
diff changeset
45 B = subsref(A.data, S);
365fcdbb8736 Implement subsref properly
Jonatan Werpers <jonatan@werpers.com>
parents: 468
diff changeset
46 case '.'
365fcdbb8736 Implement subsref properly
Jonatan Werpers <jonatan@werpers.com>
parents: 468
diff changeset
47 B = builtin('subsref',A, S);
365fcdbb8736 Implement subsref properly
Jonatan Werpers <jonatan@werpers.com>
parents: 468
diff changeset
48 otherwise
472
1dcac646c514 Add some missing semicolon
Jonatan Werpers <jonatan@werpers.com>
parents: 469
diff changeset
49 error('unreachable');
469
365fcdbb8736 Implement subsref properly
Jonatan Werpers <jonatan@werpers.com>
parents: 468
diff changeset
50 end
467
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
51 end
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
52
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
53 function C = horzcat(varargin)
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
54 dataArray = cell(1, length(varargin));
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
55
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
56 for i = 1:length(varargin)
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
57 dataArray{i} = varargin{i}.data;
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 c = horzcat(dataArray{:});
468
13362cf4dd89 Make the overloaded methods call the subclass constructor
Jonatan Werpers <jonatan@werpers.com>
parents: 467
diff changeset
61 C = callConstructor(varargin{1}, c);
467
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
62 end
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
63
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
64 function vertcat(varargin)
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
65 dataArray = cell(1, length(varargin));
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
66
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
67 for i = 1:length(varargin)
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
68 dataArray{i} = varargin{i}.data;
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
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
71 c = vertcat(dataArray{:});
468
13362cf4dd89 Make the overloaded methods call the subclass constructor
Jonatan Werpers <jonatan@werpers.com>
parents: 467
diff changeset
72 C = callConstructor(varargin{1}, c);
467
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
73 end
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
74 end
468
13362cf4dd89 Make the overloaded methods call the subclass constructor
Jonatan Werpers <jonatan@werpers.com>
parents: 467
diff changeset
75 end