annotate Cell.m @ 774:66eb4a2bbb72 feature/grids

Remove default scaling of the system. The scaling doens't seem to help actual solutions. One example that fails in the flexural code. With large timesteps the solutions seems to blow up. One particular example is profilePresentation on the tdb_presentation_figures branch with k = 0.0005
author Jonatan Werpers <jonatan@werpers.com>
date Wed, 18 Jul 2018 15:42:52 -0700
parents 2ce903f28193
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
483
025f084187d1 Add some documentation and minor clean up
Jonatan Werpers <jonatan@werpers.com>
parents: 482
diff changeset
1 % Cell is a reimplementation of matlabs cell array with the benefit that it is subclassable
025f084187d1 Add some documentation and minor clean up
Jonatan Werpers <jonatan@werpers.com>
parents: 482
diff changeset
2 % It might be used for giving a typename to a cellarray to increase readability of the code.
467
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
3 classdef Cell
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
4 properties
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
5 data
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
6 end
483
025f084187d1 Add some documentation and minor clean up
Jonatan Werpers <jonatan@werpers.com>
parents: 482
diff changeset
7
467
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
8 methods
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
9 function obj = Cell(data)
483
025f084187d1 Add some documentation and minor clean up
Jonatan Werpers <jonatan@werpers.com>
parents: 482
diff changeset
10 default_arg('data', {});
467
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
11 if ~iscell(data)
472
1dcac646c514 Add some missing semicolon
Jonatan Werpers <jonatan@werpers.com>
parents: 469
diff changeset
12 error('Input argument to Cell must be a cell array');
467
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 obj.data = data;
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
16 end
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
17
480
4ce12f8b561c Implement to string method
Jonatan Werpers <jonatan@werpers.com>
parents: 479
diff changeset
18 function str = toString(obj)
4ce12f8b561c Implement to string method
Jonatan Werpers <jonatan@werpers.com>
parents: 479
diff changeset
19 str = sprintf('%s%s', class(obj), toString(obj.data));
4ce12f8b561c Implement to string method
Jonatan Werpers <jonatan@werpers.com>
parents: 479
diff changeset
20 end
473
605a8c075388 Add to string stub.
Jonatan Werpers <jonatan@werpers.com>
parents: 472
diff changeset
21
478
d91f27460741 Implement size, length and transpose
Jonatan Werpers <jonatan@werpers.com>
parents: 474
diff changeset
22 function s = size(A)
d91f27460741 Implement size, length and transpose
Jonatan Werpers <jonatan@werpers.com>
parents: 474
diff changeset
23 s = size(A.data);
d91f27460741 Implement size, length and transpose
Jonatan Werpers <jonatan@werpers.com>
parents: 474
diff changeset
24 end
d91f27460741 Implement size, length and transpose
Jonatan Werpers <jonatan@werpers.com>
parents: 474
diff changeset
25
580
2ce903f28193 Make Cell class work with isempty()
Jonatan Werpers <jonatan@werpers.com>
parents: 483
diff changeset
26 function b = isempty(A)
2ce903f28193 Make Cell class work with isempty()
Jonatan Werpers <jonatan@werpers.com>
parents: 483
diff changeset
27 b = prod(size(A)) == 0;
2ce903f28193 Make Cell class work with isempty()
Jonatan Werpers <jonatan@werpers.com>
parents: 483
diff changeset
28 end
2ce903f28193 Make Cell class work with isempty()
Jonatan Werpers <jonatan@werpers.com>
parents: 483
diff changeset
29
478
d91f27460741 Implement size, length and transpose
Jonatan Werpers <jonatan@werpers.com>
parents: 474
diff changeset
30 function l = length(A)
d91f27460741 Implement size, length and transpose
Jonatan Werpers <jonatan@werpers.com>
parents: 474
diff changeset
31 l = length(A.data);
d91f27460741 Implement size, length and transpose
Jonatan Werpers <jonatan@werpers.com>
parents: 474
diff changeset
32 end
d91f27460741 Implement size, length and transpose
Jonatan Werpers <jonatan@werpers.com>
parents: 474
diff changeset
33
479
c5705458beb1 Implement end function and fix test for colon indexing
Jonatan Werpers <jonatan@werpers.com>
parents: 478
diff changeset
34 function ind = end(A,k,n)
c5705458beb1 Implement end function and fix test for colon indexing
Jonatan Werpers <jonatan@werpers.com>
parents: 478
diff changeset
35 ind = builtin('end',A.data, k, n);
c5705458beb1 Implement end function and fix test for colon indexing
Jonatan Werpers <jonatan@werpers.com>
parents: 478
diff changeset
36 end
c5705458beb1 Implement end function and fix test for colon indexing
Jonatan Werpers <jonatan@werpers.com>
parents: 478
diff changeset
37
478
d91f27460741 Implement size, length and transpose
Jonatan Werpers <jonatan@werpers.com>
parents: 474
diff changeset
38 function B = transpose(A)
d91f27460741 Implement size, length and transpose
Jonatan Werpers <jonatan@werpers.com>
parents: 474
diff changeset
39 b = A.data.';
d91f27460741 Implement size, length and transpose
Jonatan Werpers <jonatan@werpers.com>
parents: 474
diff changeset
40 B = callConstructor(A, b);
d91f27460741 Implement size, length and transpose
Jonatan Werpers <jonatan@werpers.com>
parents: 474
diff changeset
41 end
d91f27460741 Implement size, length and transpose
Jonatan Werpers <jonatan@werpers.com>
parents: 474
diff changeset
42
d91f27460741 Implement size, length and transpose
Jonatan Werpers <jonatan@werpers.com>
parents: 474
diff changeset
43 function B = ctranspose(A)
d91f27460741 Implement size, length and transpose
Jonatan Werpers <jonatan@werpers.com>
parents: 474
diff changeset
44 b = A.data';
d91f27460741 Implement size, length and transpose
Jonatan Werpers <jonatan@werpers.com>
parents: 474
diff changeset
45 B = callConstructor(A, b);
d91f27460741 Implement size, length and transpose
Jonatan Werpers <jonatan@werpers.com>
parents: 474
diff changeset
46 end
d91f27460741 Implement size, length and transpose
Jonatan Werpers <jonatan@werpers.com>
parents: 474
diff changeset
47
467
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
48 function A = subsasgn(A, S, B)
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
49 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
50 A = callConstructor(A, a);
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 B = subsref(A, S)
469
365fcdbb8736 Implement subsref properly
Jonatan Werpers <jonatan@werpers.com>
parents: 468
diff changeset
54 switch S(1).type
365fcdbb8736 Implement subsref properly
Jonatan Werpers <jonatan@werpers.com>
parents: 468
diff changeset
55 case '()'
481
970f1df2bfcf Implement handeling of stacked indexing
Jonatan Werpers <jonatan@werpers.com>
parents: 480
diff changeset
56 b = subsref(A.data, S(1));
469
365fcdbb8736 Implement subsref properly
Jonatan Werpers <jonatan@werpers.com>
parents: 468
diff changeset
57 B = callConstructor(A, b);
481
970f1df2bfcf Implement handeling of stacked indexing
Jonatan Werpers <jonatan@werpers.com>
parents: 480
diff changeset
58 if length(S) > 1
970f1df2bfcf Implement handeling of stacked indexing
Jonatan Werpers <jonatan@werpers.com>
parents: 480
diff changeset
59 B = subsref(B,S(2:end));
970f1df2bfcf Implement handeling of stacked indexing
Jonatan Werpers <jonatan@werpers.com>
parents: 480
diff changeset
60 end
469
365fcdbb8736 Implement subsref properly
Jonatan Werpers <jonatan@werpers.com>
parents: 468
diff changeset
61 case '{}'
365fcdbb8736 Implement subsref properly
Jonatan Werpers <jonatan@werpers.com>
parents: 468
diff changeset
62 B = subsref(A.data, S);
365fcdbb8736 Implement subsref properly
Jonatan Werpers <jonatan@werpers.com>
parents: 468
diff changeset
63 case '.'
365fcdbb8736 Implement subsref properly
Jonatan Werpers <jonatan@werpers.com>
parents: 468
diff changeset
64 B = builtin('subsref',A, S);
365fcdbb8736 Implement subsref properly
Jonatan Werpers <jonatan@werpers.com>
parents: 468
diff changeset
65 otherwise
472
1dcac646c514 Add some missing semicolon
Jonatan Werpers <jonatan@werpers.com>
parents: 469
diff changeset
66 error('unreachable');
469
365fcdbb8736 Implement subsref properly
Jonatan Werpers <jonatan@werpers.com>
parents: 468
diff changeset
67 end
467
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
68 end
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
69
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
70 function C = horzcat(varargin)
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
71 dataArray = cell(1, length(varargin));
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
72
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
73 for i = 1:length(varargin)
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
74 dataArray{i} = varargin{i}.data;
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
75 end
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
76
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
77 c = horzcat(dataArray{:});
468
13362cf4dd89 Make the overloaded methods call the subclass constructor
Jonatan Werpers <jonatan@werpers.com>
parents: 467
diff changeset
78 C = callConstructor(varargin{1}, c);
467
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
79 end
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
80
474
c91464ef1dd9 Implement tests for horzcat and vertcat. Fix bugs found
Jonatan Werpers <jonatan@werpers.com>
parents: 473
diff changeset
81 function C = vertcat(varargin)
467
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
82 dataArray = cell(1, length(varargin));
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
83
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
84 for i = 1:length(varargin)
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
85 dataArray{i} = varargin{i}.data;
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
86 end
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
87
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
88 c = vertcat(dataArray{:});
468
13362cf4dd89 Make the overloaded methods call the subclass constructor
Jonatan Werpers <jonatan@werpers.com>
parents: 467
diff changeset
89 C = callConstructor(varargin{1}, c);
467
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
90 end
8d3c3da3a589 Initial commit
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
91 end
468
13362cf4dd89 Make the overloaded methods call the subclass constructor
Jonatan Werpers <jonatan@werpers.com>
parents: 467
diff changeset
92 end