diff --git a/matlab/@dynSeries/align.m b/matlab/@dynSeries/align.m index 6312df808..68efced3c 100644 --- a/matlab/@dynSeries/align.m +++ b/matlab/@dynSeries/align.m @@ -113,7 +113,7 @@ a.time = a.init:a.init+(a.nobs-1); %$ %$ if t(1) %$ t(2) = dyn_assert(ts1.nobs,ts2.nobs); -%$ t(3) = dyn_assert(ts1.init==ts2.init,1); +%$ t(3) = dyn_assert(isequal(ts1.init,ts2.init),1); %$ t(4) = dyn_assert(ts1.data,[NaN(3,3); A], 1e-15); %$ t(5) = dyn_assert(ts2.data,[B; NaN(4,2)], 1e-15); %$ end @@ -145,7 +145,7 @@ a.time = a.init:a.init+(a.nobs-1); %$ %$ if t(1) %$ t(2) = dyn_assert(ts1.nobs,ts2.nobs); -%$ t(3) = dyn_assert(ts1.init==ts2.init,1); +%$ t(3) = dyn_assert(isequal(ts1.init,ts2.init),1); %$ t(4) = dyn_assert(ts1.data,A, 1e-15); %$ t(5) = dyn_assert(ts2.data,[B; NaN(1,2)], 1e-15); %$ end @@ -177,7 +177,7 @@ a.time = a.init:a.init+(a.nobs-1); %$ %$ if t(1) %$ t(2) = dyn_assert(ts1.nobs,ts2.nobs); -%$ t(3) = dyn_assert(ts1.init==ts2.init,1); +%$ t(3) = dyn_assert(isequal(ts1.init,ts2.init),1); %$ t(4) = dyn_assert(ts1.data,A, 1e-15); %$ t(5) = dyn_assert(ts2.data,[B; NaN(1,2)], 1e-15); %$ end diff --git a/matlab/@dynSeries/check.m b/matlab/@dynSeries/check.m index 02525ec3b..e7a695d27 100644 --- a/matlab/@dynSeries/check.m +++ b/matlab/@dynSeries/check.m @@ -77,7 +77,7 @@ if ~isequal(numel(unique(A.tex)),numel(A.tex)); return end -if ~eq(A.time,A.init:A.init+A.nobs) +if ~isequal(A.time,A.init:A.init+A.nobs) error_flag = 1; if nargout>1 message = ['dynSeries: Wrong definition of the time member in dynSeries object ''' inputname(1) '''!']: diff --git a/matlab/@dynSeries/save.m b/matlab/@dynSeries/save.m index a098b8258..1002efe53 100644 --- a/matlab/@dynSeries/save.m +++ b/matlab/@dynSeries/save.m @@ -36,7 +36,7 @@ switch format fprintf(fid,'%% File created on %s.\n',datestr(now)); fprintf(fid,'\n'); fprintf(fid,'FREQ__ = %s;\n',num2str(A.freq)); - fprintf(fid,'INIT__ = '' %s'';\n',A.init.format); + fprintf(fid,'INIT__ = '' %s'';\n',date2string(A.init)); fprintf(fid,'\n'); fprintf(fid,'NAMES__ = {'); for i=1:A.vobs @@ -62,7 +62,7 @@ switch format fclose(fid); case 'mat' FREQ__ = A.freq; - INIT__ = A.init.format; + INIT__ = date2string(A.init); NAMES__ = A.name; TEX__ = A.tex; str = []; @@ -84,7 +84,7 @@ switch format for t=1:A.nobs date = A.init+(t-1); str = sprintf(', %15.8g',A.data(t,:)); - fprintf(fid, '%s%s\n',date.format,str); + fprintf(fid, '%s%s\n',date2string(date),str); end fclose(fid); end diff --git a/matlab/@dynSeries/subsasgn.m b/matlab/@dynSeries/subsasgn.m index 5c3a51612..034f72502 100644 --- a/matlab/@dynSeries/subsasgn.m +++ b/matlab/@dynSeries/subsasgn.m @@ -98,7 +98,7 @@ switch length(S) end end case '.' - if isequal(S(1).subs,'init') && isa(B,'dynDate') + if isequal(S(1).subs,'init') && isa(B,'dates') && isequal(length(B),1) % Overwrite the init member... A.init = B; % ... and update freq and time members. @@ -131,7 +131,7 @@ switch length(S) end end case '()' % Date(s) selection - if isa(S(1).subs{1},'dates') || isa(S(1).subs{1},'dynDate') + if isa(S(1).subs{1},'dates') [junk, tdx] = intersect(A.time.time,S(1).subs{1}.time,'rows'); if isa(B,'dynSeries') [junk, tdy] = intersect(B.time.time,S(1).subs{1}.time,'rows'); @@ -172,7 +172,7 @@ switch length(S) sA = extract(A,S(1).subs); end if (isa(B,'dynSeries') && isequal(sA.vobs,B.vobs)) || (isnumeric(B) && isequal(sA.vobs,columns(B))) || (isnumeric(B) && isequal(columns(B),1)) - if isa(S(2).subs{1},'dates') || isa(S(2).subs{1},'dynDate') + if isa(S(2).subs{1},'dates') [junk, tdx] = intersect(sA.time.time,S(2).subs{1}.time,'rows'); if isa(B,'dynSeries') [junk, tdy] = intersect(B.time.time,S(2).subs{1}.time,'rows'); @@ -504,8 +504,8 @@ end %$ %$ % modify first object. %$ try -%$ d1 = dynDate('1950Q3'); -%$ d2 = dynDate('1951Q3'); +%$ d1 = dates('1950Q3'); +%$ d2 = dates('1951Q3'); %$ rg = d1:d2; %$ ts1{'A1'}(rg) = ts2{'B1'}(rg); %$ t(1) = 1; @@ -535,8 +535,8 @@ end %$ %$ % modify first object. %$ try -%$ d1 = dynDate('1950Q3'); -%$ d2 = dynDate('1951Q3'); +%$ d1 = dates('1950Q3'); +%$ d2 = dates('1951Q3'); %$ rg = d1:d2; %$ ts1{'A1'}(rg) = B(3:7); %$ t(1) = 1; @@ -566,8 +566,8 @@ end %$ %$ % modify first object. %$ try -%$ d1 = dynDate('1950Q3'); -%$ d2 = dynDate('1951Q3'); +%$ d1 = dates('1950Q3'); +%$ d2 = dates('1951Q3'); %$ rg = d1:d2; %$ ts1.A1(rg) = B(3:7); %$ t(1) = 1; @@ -597,8 +597,8 @@ end %$ %$ % modify first object. %$ try -%$ d1 = dynDate('1950Q3'); -%$ d2 = dynDate('1951Q3'); +%$ d1 = dates('1950Q3'); +%$ d2 = dates('1951Q3'); %$ rg = d1:d2; %$ ts1.A1(rg) = sqrt(pi); %$ t(1) = 1; @@ -628,8 +628,8 @@ end %$ %$ % modify first object. %$ try -%$ d1 = dynDate('1950Q3'); -%$ d2 = dynDate('1951Q3'); +%$ d1 = dates('1950Q3'); +%$ d2 = dates('1951Q3'); %$ rg = d1:d2; %$ ts1{'A1','A2'}(rg) = sqrt(pi); %$ t(1) = 1; @@ -659,8 +659,8 @@ end %$ %$ % modify first object. %$ try -%$ d1 = dynDate('1950Q3'); -%$ d2 = dynDate('1951Q3'); +%$ d1 = dates('1950Q3'); +%$ d2 = dates('1951Q3'); %$ rg = d1:d2; %$ ts1{'A1','A2'}(rg) = [sqrt(pi), pi]; %$ t(1) = 1; @@ -690,8 +690,8 @@ end %$ %$ % modify first object. %$ try -%$ d1 = dynDate('1950Q3'); -%$ d2 = dynDate('1951Q3'); +%$ d1 = dates('1950Q3'); +%$ d2 = dates('1951Q3'); %$ rg = d1:d2; %$ ts1{'A1','A2'}(rg) = ones(5,1); %$ t(1) = 1; @@ -718,8 +718,8 @@ end %$ % Instantiate two dynSeries object. %$ ts1 = dynSeries(A,'1950Q1',{'A1';'A2';'A3'},[]); %$ -%$ % Instantiate a dynDate object. -%$ dd = dynDate('1952Q1'); +%$ % Instantiate a dates object. +%$ dd = dates('1952Q1'); %$ %$ % modify first object. %$ try @@ -750,8 +750,8 @@ end %$ % Instantiate two dynSeries object. %$ ts1 = dynSeries(A,'1950Q1',{'A1';'A2';'A3'},[]); %$ -%$ % Instantiate a dynDate object. -%$ dd = dynDate('1952Q1'); +%$ % Instantiate a dates object. +%$ dd = dates('1952Q1'); %$ %$ % modify first object. %$ try diff --git a/matlab/@dynSeries/subsref.m b/matlab/@dynSeries/subsref.m index 6e4d17e0a..99cc5b92c 100644 --- a/matlab/@dynSeries/subsref.m +++ b/matlab/@dynSeries/subsref.m @@ -199,7 +199,7 @@ switch S(1).type elseif isvector(S(1).subs{1}) && all(isint(S(1).subs{1})) % Extract a subsample using a vector of integers (observation index). % Note that this does not work if S(1).subs is an integer scalar... In which case S(1).subs is interpreted as a lead/lag operator (as in the Dynare syntax). - % To extract one observation, a dates with one element or a dynDate input must be used. + % To extract one observation, a dates with one element input must be used. if all(S(1).subs{1}>0) && all(S(1).subs{1}<=A.nobs) if size(A.data,2)>1 S(1).subs = [S(1).subs, ':']; @@ -215,18 +215,6 @@ switch S(1).type else error('dynSeries::subsref: Indices are out of bounds!') end - elseif isa(S(1).subs{1},'dynDate') - % Extract a subsample using a dates object - [junk,tdx] = intersect(A.time.time,S(1).subs{1}.time,'rows'); - B = dynSeries(); - B.data = A.data(tdx,:); - B.name = A.name; - B.tex = A.tex; - B.nobs = 1; - B.vobs = A.vobs; - B.freq = A.freq; - B.init = A.time(tdx,:); - B.time = A.time(tdx,:); else error('dynSeries::subsref: I have no idea of what you are trying to do!') end @@ -278,14 +266,14 @@ end %$ e.vobs = 2; %$ e.name = {'A1';'A2'}; %$ e.freq = 1; -%$ e.init = dynDate(2); +%$ e.init = dates(1,2); %$ %$ % Check the results. %$ t(1) = dyn_assert(a.data,e.data); %$ t(2) = dyn_assert(a.nobs,e.nobs); %$ t(3) = dyn_assert(a.vobs,e.vobs); %$ t(4) = dyn_assert(a.freq,e.freq); -%$ t(5) = dyn_assert(a.init,e.init); +%$ t(5) = dyn_assert(isequal(a.init,e.init),1); %$ T = all(t); %@eof:1 @@ -308,11 +296,11 @@ end %$ e.vobs = 1; %$ e.name = {'A1'}; %$ e.freq = 1; -%$ e.init = dynDate(1); +%$ e.init = dates(1,1); %$ %$ % Check the results. %$ t(1) = dyn_assert(a.data,e.data); -%$ t(2) = dyn_assert(a.init,e.init); +%$ t(2) = dyn_assert(isequal(a.init,e.init),1); %$ t(3) = dyn_assert(a.nobs,e.nobs); %$ t(4) = dyn_assert(a.vobs,e.vobs); %$ t(5) = dyn_assert(a.freq,e.freq); @@ -338,14 +326,14 @@ end %$ e.vobs = 2; %$ e.name = {'A1';'A2'}; %$ e.freq = 1; -%$ e.init = dynDate(1); +%$ e.init = dates(1,1); %$ %$ % Check the results. %$ t(1) = dyn_assert(a.data,e.data); %$ t(2) = dyn_assert(a.nobs,e.nobs); %$ t(3) = dyn_assert(a.vobs,e.vobs); %$ t(4) = dyn_assert(a.freq,e.freq); -%$ t(5) = dyn_assert(a.init,e.init); +%$ t(5) = dyn_assert(isequal(a.init,e.init),1); %$ T = all(t); %@eof:3 @@ -367,7 +355,7 @@ end %$ t(2) = dyn_assert(A.nobs,4); %$ t(3) = dyn_assert(A.vobs,4); %$ t(4) = dyn_assert(A.freq,4); -%$ t(5) = dyn_assert(A.init,dynDate('1990Q1')); +%$ t(5) = dyn_assert(isequal(A.init,dates('1990Q1')),1); %$ end %$ T = all(t); %@eof:4 @@ -391,13 +379,13 @@ end %$ e.vobs = 2; %$ e.name = {'A1';'B1'}; %$ e.freq = 1; -%$ e.init = dynDate(1); +%$ e.init = dates(1,1); %$ %$ t(1) = dyn_assert(e.data,a.data); %$ t(2) = dyn_assert(e.nobs,a.nobs); %$ t(3) = dyn_assert(e.vobs,a.vobs); %$ t(4) = dyn_assert(e.name,a.name); -%$ t(5) = dyn_assert(e.init,a.init); +%$ t(5) = dyn_assert(isequal(e.init,a.init),1); %$ T = all(t); %@eof:5 @@ -421,25 +409,25 @@ end %$ e1.vobs = 12; %$ e1.name = {'GDP_1';'GDP_2';'GDP_3'; 'GDP_4'; 'GDP_5'; 'GDP_6'; 'GDP_7'; 'GDP_8'; 'GDP_9'; 'GDP_10'; 'GDP_11'; 'GDP_12'}; %$ e1.freq = 1; -%$ e1.init = dynDate(1); +%$ e1.init = dates(1,1); %$ e2.data = A(:,[1, 13]); %$ e2.nobs = 10; %$ e2.vobs = 2; %$ e2.name = {'GDP_1';'HICP_1'}; %$ e2.freq = 1; -%$ e2.init = dynDate(1); +%$ e2.init = dates(1,1); %$ %$ % Check results. %$ t(1) = dyn_assert(e1.data,a.data); %$ t(2) = dyn_assert(e1.nobs,a.nobs); %$ t(3) = dyn_assert(e1.vobs,a.vobs); %$ t(4) = dyn_assert(e1.name,a.name); -%$ t(5) = dyn_assert(e1.init,a.init); +%$ t(5) = dyn_assert(isequal(e1.init,a.init),1); %$ t(6) = dyn_assert(e2.data,b.data); %$ t(7) = dyn_assert(e2.nobs,b.nobs); %$ t(8) = dyn_assert(e2.vobs,b.vobs); %$ t(9) = dyn_assert(e2.name,b.name); -%$ t(10) = dyn_assert(e2.init,b.init); +%$ t(10) = dyn_assert(isequal(e2.init,b.init),1); %$ T = all(t); %@eof:6 @@ -492,7 +480,7 @@ end %$ ts1 = dynSeries(A,'1971Q1',A_name,[]); %$ %$ % Define the range of a subsample. -%$ range = dynDate('1971Q2'):dynDate('1971Q4'); +%$ range = dates('1971Q2'):dates('1971Q4'); %$ % Call the tested method. %$ a = ts1(range); %$ @@ -502,13 +490,13 @@ end %$ e.vobs = 3; %$ e.name = {'A1';'A2';'B1'}; %$ e.freq = 4; -%$ e.init = dynDate('1971Q2'); +%$ e.init = dates('1971Q2'); %$ %$ t(1) = dyn_assert(e.data,a.data); %$ t(2) = dyn_assert(e.nobs,a.nobs); %$ t(3) = dyn_assert(e.vobs,a.vobs); %$ t(4) = dyn_assert(e.name,a.name); -%$ t(5) = dyn_assert(e.init,a.init); +%$ t(5) = dyn_assert(isequal(e.init,a.init),1); %$ T = all(t); %@eof:9 diff --git a/matlab/@dynSeries/vertcat.m b/matlab/@dynSeries/vertcat.m index cd99cf84a..369121560 100644 --- a/matlab/@dynSeries/vertcat.m +++ b/matlab/@dynSeries/vertcat.m @@ -86,7 +86,7 @@ end %$ B_name = {'A1';'A2'}; %$ %$ % Define expected results. -%$ e.time = dynDate(1); +%$ e.time = dates(1,1); %$ e.freq = 1; %$ e.name = {'A1';'A2'}; %$ e.data = [A;B]; @@ -100,7 +100,7 @@ end %$ %$ % Check the results. %$ -%$ t(1) = dyn_assert(ts3.init,e.time); +%$ t(1) = dyn_assert(isequal(ts3.init,e.time),1); %$ t(2) = dyn_assert(ts3.freq,e.freq); %$ t(3) = dyn_assert(ts3.data,e.data); %$ t(4) = dyn_assert(ts3.name,e.name); @@ -121,7 +121,7 @@ end %$ C_name = {'A1';'A2'}; %$ %$ % Define expected results. -%$ e.time = dynDate(1); +%$ e.time = dates(1,1); %$ e.freq = 1; %$ e.name = {'A1';'A2'}; %$ e.data = [A;B;C]; @@ -136,7 +136,7 @@ end %$ %$ % Check the results. %$ -%$ t(1) = dyn_assert(ts4.init,e.time); +%$ t(1) = dyn_assert(isequal(ts4.init,e.time),1); %$ t(2) = dyn_assert(ts4.freq,e.freq); %$ t(3) = dyn_assert(ts4.data,e.data); %$ t(4) = dyn_assert(ts4.name,e.name);