SUBSASGN define index assignment for fsdata properties. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% DESCRIPTION: SUBSASGN define index assignment for fsdata properties. EXAMPLES: All possible assignment are possible. VERSION: $Id: subsasgn.m,v 1.2 2007/08/13 13:19:17 ingo Exp $ HISTORY: 31-01-07 M Hewitson Creation %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0001 function A = subsasgn(A, S, B) 0002 % SUBSASGN define index assignment for fsdata properties. 0003 % 0004 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0005 % 0006 % DESCRIPTION: SUBSASGN define index assignment for fsdata 0007 % properties. 0008 % 0009 % EXAMPLES: All possible assignment are possible. 0010 % 0011 % VERSION: $Id: subsasgn.m,v 1.2 2007/08/13 13:19:17 ingo Exp $ 0012 % 0013 % HISTORY: 31-01-07 M Hewitson 0014 % Creation 0015 % 0016 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0017 A = builtin ('subsasgn', A, S, B); 0018 0019 0020 % function fsd = subsasgn(fsd, index, val) 0021 % 0022 % % SUBSASGN define index assignment for vectors in fsdata. 0023 % % 0024 % % M Hewitson 30-01-07 0025 % % 0026 % % $Id: subsasgn.m,v 1.2 2007/08/13 13:19:17 ingo Exp $ 0027 % % 0028 % 0029 % if size(val,2) > size(val,1) 0030 % val = val.'; 0031 % end 0032 % 0033 % switch length(index) 0034 % case 1 % fsd(idx) = [] or fsd.f = [] or fsd.xx = [] 0035 % switch index.type 0036 % case '()' 0037 % idx = index.subs{1}; 0038 % if length(val) ~= length(idx) 0039 % error('### number of values does not match number of indices.'); 0040 % end 0041 % fsd.f(idx) = val(1,:); 0042 % fsd.xx(idx) = val(2,:); 0043 % case '.' 0044 % switch index.subs 0045 % case 'f' 0046 % fsd.f = val; 0047 % if length(val) ~= length(fsd.xx) 0048 % warning('!!! Frequency vector not consistent with xx vector'); 0049 % end 0050 % case 'xx' 0051 % fsd.xx = val; 0052 % if length(val) ~= length(fsd.xx) 0053 % warning('!!! xx vector not consistent with frequency vector'); 0054 % end 0055 % otherwise 0056 % error('### unknown field for indexing.'); 0057 % end 0058 % otherwise 0059 % error('### unknown indexing method for fsdata objects.'); 0060 % end 0061 % case 2 % ts.t(idx) = [] or ts.x(idx) = [] 0062 % 0063 % if index(1).type == '.' 0064 % % first index gets us field name 0065 % fieldName = index(1).subs; 0066 % % second index gets us indices 0067 % idx = index(2).subs{1}; 0068 % switch fieldName 0069 % case 'f' 0070 % fsd.f(idx) = val; 0071 % case 'xx' 0072 % fsd.xx(idx) = val; 0073 % otherwise 0074 % error('### unknown field to index 1.'); 0075 % end 0076 % else 0077 % error('### unknown indexing method for fsdata objects.'); 0078 % end 0079 % 0080 % otherwise 0081 % error('### unknown indexing method for fsdata objects.'); 0082 % end 0083 0084 % END