0
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 1 % ELEMENTOP applies the given operator to the input smodels.
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 3 %
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 4 % DESCRIPTION: ELEMENTOP applies the given operator to the input smodels.
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 5 %
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 6 % CALL: a = elementOp(callerIsMethod, op, opname, opsym, infoObj, pl, fcnArgIn, varNames)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 7 %
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 8 % PARAMETERS: op - MATLAB operation name
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 9 % opname - Name for displaying
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 10 % opsym - Operation symbol
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 11 % infoObj - minfo object
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 12 % pl - default plist
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 13 % fcnArgIn - Input argument list of the calling fcn.
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 14 % varNames - Variable names of the input
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 15 %
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 16 % VERSION: $Id: elementOp.m,v 1.14 2011/05/10 20:43:09 mauro Exp $
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 17 %
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 18 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 19
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 20 function varargout = elementOp(varargin)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 21
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 22 import utils.const.*
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 23
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 24 % Settings
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 25 callerIsMethod = varargin{1};
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 26 op = varargin{2};
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 27 opname = varargin{3};
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 28 opsym = varargin{4};
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 29
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 30 infoObj = varargin{5};
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 31 pl = varargin{6};
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 32
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 33 fcnArgIn = varargin{7};
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 34 varNames = varargin{8};
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 35
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 36 if numel(fcnArgIn) ~= 2 && numel(fcnArgIn) ~= 3
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 37 error('### ');
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 38 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 39
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 40 mdl1 = fcnArgIn{1};
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 41 mdl2 = fcnArgIn{2};
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 42
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 43 %%%%%%%%%% Convert numbers into a symbolic model object %%%%%%%%%%
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 44 if isnumeric(mdl1) || ischar(mdl1)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 45 expr = mdl1;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 46 varNames{1} = num2str(expr);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 47 % Create an array with the same size of the second input
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 48 mdl1 = smodel.newarray(size(mdl2));
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 49 % Copy the object and replace the expression
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 50 for ii = 1:numel(mdl2)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 51 mdl1(ii) = copy(mdl2(ii), true);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 52 mdl1(ii).yunits = '';
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 53 mdl1(ii).expr = msym(expr);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 54 % Do not duplicate yunits in case of product/division
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 55 if ~strcmpi(op, 'times') && ~strcmpi(op, 'rdivide')
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 56 mdl1(ii).yunits = mdl2(ii).yunits;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 57 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 58 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 59 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 60 if isnumeric(mdl2) || ischar(mdl2)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 61 expr = mdl2;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 62 varNames{2} = num2str(expr);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 63 % Create an array with the same size of the first input
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 64 mdl2 = smodel.newarray(size(mdl1));
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 65 % Copy the object and replace the expression
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 66 for ii = 1:numel(mdl1)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 67 mdl2(ii) = copy(mdl1(ii), true);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 68 mdl2(ii).yunits = '';
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 69 mdl2(ii).expr = msym(expr);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 70
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 71 % Do not duplicate yunits in case of product/division
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 72 if ~strcmpi(op, 'times') && ~strcmpi(op, 'rdivide')
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 73 mdl2(ii).yunits = mdl1(ii).yunits;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 74 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 75 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 76 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 77
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 78 % Convert cdata aos into a smodel object
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 79 if isa(mdl2, 'ao')
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 80 if isa(mdl2.data, 'cdata') && numel(mdl2.data.y) == 1
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 81 expr = mdl2.y;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 82 % Create an array with the same size of the first input
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 83 mdl2 = smodel.newarray(size(mdl1));
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 84 % Copy the object and replace the expression
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 85 for ii = 1:numel(mdl1)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 86 mdl2(ii) = copy(mdl1(ii), true);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 87 mdl2(ii).expr = msym(expr);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 88
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 89 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 90 else
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 91 error('### It is not possible to apply %s to the two objects!', opname);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 92 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 93 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 94
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 95 %%%%%%%%%% If the first or second input is only one object then %%%%%%%%%%
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 96 %%%%%%%%%% resize the input to the size of the other object. %%%%%%%%%%
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 97 if numel(mdl1) == 1 && numel(mdl1) ~= numel(mdl2)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 98 mdl1(1:numel(mdl2)) = mdl1;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 99 mdl1 = reshape(mdl1, size(mdl2));
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 100 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 101 if numel(mdl2) == 1 && numel(mdl2) ~= numel(mdl1)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 102 mdl2(1:numel(mdl1)) = mdl2;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 103 mdl2 = reshape(mdl2, size(mdl1));
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 104 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 105
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 106 if ~all(size(mdl1) == size(mdl2))
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 107 error('### The Input objects must have the same size. Size of model1 [%d %d], model2 [%d %d]', size(mdl1,1), size(mdl1,2), size(mdl2,1), size(mdl2,2));
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 108 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 109
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 110 %%%%%%%%%% Add each element inside the array %%%%%%%%%%
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 111 mdl = smodel.newarray(size(mdl1));
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 112 for kk = 1:numel(mdl1)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 113 switch opsym
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 114 case {'.*', '*'}
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 115 if any(strcmp(mdl1(kk).expr.s, {'0','(0)'})) || any(strcmp(mdl2(kk).expr.s, {'0','(0)'}))
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 116 % 0*something = 0
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 117 mdl(kk).expr = msym(['0']);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 118 else
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 119 mdl(kk).expr = msym(['(' mdl1(kk).expr.s ')' opsym '(' mdl2(kk).expr.s ')']);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 120 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 121 case {'./', '/'}
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 122 if any(strcmp(mdl1(kk).expr.s, {'0','(0)'}))
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 123 % 0/something = 0
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 124 mdl(kk).expr = msym(['0']);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 125 else
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 126 mdl(kk).expr = msym(['(' mdl1(kk).expr.s ')' opsym '(' mdl2(kk).expr.s ')']);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 127 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 128 case '+'
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 129 if any(strcmp(mdl1(kk).expr.s, {'0','(0)'}))
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 130 % 0 + something = something
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 131 mdl(kk).expr = msym([mdl2(kk).expr.s]);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 132 elseif any(strcmp(mdl2(kk).expr.s, {'0','(0)'}))
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 133 % something + 0 = something
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 134 mdl(kk).expr = msym([mdl1(kk).expr.s]);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 135 else
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 136 mdl(kk).expr = msym(['(' mdl1(kk).expr.s ')' opsym '(' mdl2(kk).expr.s ')']);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 137 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 138 otherwise
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 139 mdl(kk).expr = msym(['(' mdl1(kk).expr.s ')' opsym '(' mdl2(kk).expr.s ')']);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 140 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 141
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 142 mdl(kk).name = ['(' mdl1(kk).name ')' opsym '(' mdl2(kk).name ')'];
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 143
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 144 % Merge parameters, alias, xvar, tran fields
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 145 smodel.mergeFields(mdl1(kk), mdl2(kk), mdl(kk), 'params', 'values');
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 146 smodel.mergeFields(mdl1(kk), mdl2(kk), mdl(kk), 'aliasNames', 'aliasValues');
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 147 smodel.mergeFields(mdl1(kk), mdl2(kk), mdl(kk), 'xvar', 'xvals');
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 148 smodel.mergeFields(mdl1(kk), mdl2(kk), mdl(kk), 'xvar', 'xunits');
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 149 smodel.mergeFields(mdl1(kk), mdl2(kk), mdl(kk), 'xvar', 'trans');
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 150
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 151 % Take care of units
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 152 if strcmpi(op,'times')
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 153 mdl(kk).yunits = simplify(unit(unit(mdl1(kk).yunits).*unit(mdl2(kk).yunits)));
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 154 elseif strcmpi(op,'rdivide')
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 155 mdl(kk).yunits = simplify(unit(unit(mdl1(kk).yunits)./unit(mdl2(kk).yunits)));
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 156 else
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 157 mdl(kk).yunits = mdl1(kk).yunits;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 158 if mdl1(kk).yunits ~= mdl2(kk).yunits
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 159 error('### Y units should be equal for %s', opname);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 160 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 161 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 162
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 163 % Add history
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 164 if ~callerIsMethod
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 165 inname1 = varNames{1};
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 166 inname2 = varNames{2};
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 167 if numel(fcnArgIn{1}) > 1
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 168 [ii, jj] = ind2sub(size(fcnArgIn{1}), kk);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 169 inname1 = sprintf('%s(%d,%d)', inname1, ii, jj);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 170 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 171 if numel(fcnArgIn{2}) > 1
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 172 [ii, jj] = ind2sub(size(fcnArgIn{2}), kk);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 173 inname2 = sprintf('%s(%d,%d)', inname2, ii, jj);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 174 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 175 mdl(kk).addHistory(infoObj, pl, {inname1, inname2}, [mdl1(kk).hist mdl2(kk).hist]);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 176 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 177 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 178
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 179 varargout{1} = mdl;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 180
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 181 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 182
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 183