0001 function xy = subsasgn(xy, index, val)
0002
0003
0004
0005
0006
0007
0008
0009
0010 if size(val,2) > size(val,1)
0011 val = val.';
0012 end
0013
0014 switch length(index)
0015 case 1
0016 switch index.type
0017 case '()'
0018 idx = index.subs{1};
0019 if length(val) ~= length(idx)
0020 error('### number of values does not match number of indices.');
0021 end
0022 xy.x(idx) = val(1,:);
0023 xy.y(idx) = val(2,:);
0024 case '.'
0025 switch index.subs
0026 case 'x'
0027 xy.x = val;
0028 if length(val) ~= length(xy.y)
0029 warning('!!! X vector not consistent with Y vector');
0030 end
0031 case 'y'
0032 xy.y = val;
0033 if length(val) ~= length(ts.x)
0034 warning('!!! Y vector no consistent with X vector');
0035 end
0036 otherwise
0037 error('### unknown field for indexing.');
0038 end
0039 otherwise
0040 error('### unknown indexing method for xydata objects.');
0041 end
0042 case 2
0043
0044 if index(1).type == '.'
0045
0046 fieldName = index(1).subs;
0047
0048 idx = index(2).subs{1};
0049 switch fieldName
0050 case 'x'
0051 xy.x(idx) = val;
0052 case 'y'
0053 xy.y(idx) = val;
0054 otherwise
0055 error('### unknown field to index 1.');
0056 end
0057 else
0058 error('### unknown indexing method for xydata objects.');
0059 end
0060
0061 otherwise
0062 error('### unknown indexing method for xydata objects.');
0063 end
0064
0065