From 588846d3e78f7b0acb29b4ebd04414585783053a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Adjemian=20=28Ry=C3=BBk=29?= <stepan@adjemian.eu> Date: Wed, 8 Mar 2023 19:19:46 +0100 Subject: [PATCH] Improve error message. --- src/@dseries/subsasgn.m | 36 ++++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/src/@dseries/subsasgn.m b/src/@dseries/subsasgn.m index a4eb972..e4a9dcc 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) -- GitLab