From b1cf127dcca228394a969af75fce352297fb1fdc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Adjemian=20=28Charybdis=29?= <stephane.adjemian@univ-lemans.fr> Date: Thu, 26 Nov 2015 09:45:01 +0100 Subject: [PATCH] Fixed bug (populating an empty dseries object). --- src/@dseries/subsasgn.m | 35 +++++++++++++++-------------------- 1 file changed, 15 insertions(+), 20 deletions(-) diff --git a/src/@dseries/subsasgn.m b/src/@dseries/subsasgn.m index e3dcfe9..200d2e1 100644 --- a/src/@dseries/subsasgn.m +++ b/src/@dseries/subsasgn.m @@ -164,29 +164,24 @@ switch length(S) end elseif ischar(S(1).subs{1}) && isequal(S(1).subs{1},':') && isempty(A) if isnumeric(B) - if isequal(rows(B),1) - A.data = repmat(B,A.dates.ndat,1); - elseif isequal(rows(B),A.dates.ndat) - A.data = B; + A.data = B; + A.name = default_name(vobs(A)); + A.tex = name2tex(A.name); + if isempty(A.dates) + if isempty(A.dates.freq) + init = dates('1Y') + else + init = dates(A.dates.freq, 1, 1); + end else - error('dseries::subsasgn: Wrong syntax!') - end - if isempty(A.name) - A.name = default_name(vobs(A)); - A.tex = name2tex(A.name); + init = A.dates(1); end + A.dates = init:(init+rows(B)-1); elseif isdseries(B) - if isequal(nobs(B), 1) - A.data = repmat(B.data,A.dates.ndat,1); - elseif isequal(nobs(B), A.dates.ndat) - A.data = B; - else - error('dseries::subsasgn: Wrong syntax!') - end - if isempty(A.name) - A.name = B.name; - A.tex = B.tex; - end + A.data = B.data; + A.name = B.name; + A.tex = N.tex; + A.dates = B.dates; end return else -- GitLab