diff --git a/src/@dseries/subsasgn.m b/src/@dseries/subsasgn.m index a4eb9720aa511b161813de5276ff8f65ee30b076..e4a9dcca4fa1f1ae542b8b6e2dae03179f8f0375 100644 --- a/src/@dseries/subsasgn.m +++ b/src/@dseries/subsasgn.m @@ -66,25 +66,29 @@ switch length(S) end return end - if ~isequal(length(S(1).subs),vobs(B)) - error('dseries::subsasgn: Wrong syntax!') - end - if ~isequal(S(1).subs(:),B.name) - for i = 1:vobs(B) - if ~isequal(S(1).subs{i},B.name{i}) - % Rename a variable. - id = find(strcmp(S(1).subs{i},A.name)); - if isempty(id) - % Add a new variable a change its name. - B.name(i) = S(1).subs(i); - B.tex(i) = {name2tex(S(1).subs{i})}; - else - % Rename variable and change its content. - B.name(i) = A.name(id); - B.tex(i) = A.tex(id); + if isdseries(B) + if ~isequal(length(S(1).subs),vobs(B)) + error('dseries::subsasgn: Wrong syntax!') + end + if ~isequal(S(1).subs(:),B.name) + for i = 1:vobs(B) + if ~isequal(S(1).subs{i},B.name{i}) + % Rename a variable. + id = find(strcmp(S(1).subs{i},A.name)); + if isempty(id) + % Add a new variable a change its name. + B.name(i) = S(1).subs(i); + B.tex(i) = {name2tex(S(1).subs{i})}; + else + % Rename variable and change its content. + B.name(i) = A.name(id); + B.tex(i) = A.tex(id); + end end end end + else + error('dseries::subsasgn: Can only assign dseries object.') end case '.' if isequal(S(1).subs,'init') && isdates(B) && isequal(length(B),1)