diff --git a/src/@dseries/lag.m b/src/@dseries/lag.m index 72197f05dc01e43575dd7e42d127ded5b110b6c6..161465abd5dd522ee83934354d85f79d7fa41aa5 100644 --- a/src/@dseries/lag.m +++ b/src/@dseries/lag.m @@ -1,28 +1,29 @@ -function us = lag(ts,p) % --*-- Unitary tests --*-- +function q = lag(o, p) % --*-- Unitary tests --*-- -%@info: -%! @deftypefn {Function File} {@var{us} =} lag (@var{ts}) -%! @anchor{lag} -%! @sp 1 -%! Computes lagged time series. -%! @sp 2 -%! @strong{Inputs} -%! @sp 1 -%! @table @var -%! @item ts -%! Dynare time series object, instantiated by @ref{dseries} -%! @end table -%! @sp 2 -%! @strong{Outputs} -%! @sp 1 -%! @table @var -%! @item us -%! Dynare time series object with transformed data field. -%! @end table -%! @end deftypefn -%@eod: +% Returns a lagged time series +% +% INPUTS +% - o [dseries] +% - p [integer] Number of lags +% +% OUTPUTS +% - o [dseries] +% +% EXAMPLE +% Define a dseries object as follows: +% +% >> o = dseries(transpose(1:5)) +% +% then o.lag(1) returns +% +% | lag(Variable_1,1) +% 1Y | NaN +% 2Y | 1 +% 3Y | 2 +% 4Y | 3 +% 5Y | 4 -% Copyright (C) 2013 Dynare Team +% Copyright (C) 2013-2015 Dynare Team % % This file is part of Dynare. % @@ -44,19 +45,24 @@ if nargin<2 p = 1; end +% Check second input argument if p<=0 - error('dseries::lag: Second input argument must be strictly positive! Use lead method instead.') + error('dseries:WrongInputArguments','Second input argument must be strictly positive! Use lead method instead.') +end + +if ~isint(p) + error('dseries:WrongInputArguments','Second input argument must be an integer!') end % Copy of ts dseries object -us = ts; +q = copy(o); % Update data member -us.data = [NaN(p, vobs(ts)); ts.data(1:end-p,:)]; +q.data = [NaN(p, vobs(o)); q.data(1:end-p,:)]; -for i=1:vobs(ts) - us.name(i) = {[ 'lag(' ts.name{i} ',' int2str(p) ')']}; - us.tex(i) = {[ ts.tex{i} '_{-' int2str(p) '}']}; +for i=1:vobs(o) + q.name(i) = {[ 'lag(' o.name{i} ',' int2str(p) ')']}; + q.tex(i) = {[ o.tex{i} '_{-' int2str(p) '}']}; end %@test:1 @@ -68,12 +74,12 @@ end %$ a = ts.lag; %$ b = ts.lag.lag; %$ c = lag(ts,2); -%$ t(1) = 1; +%$ t(1) = true; %$ catch -%$ t = 0; +%$ t(1) = false; %$ end %$ -%$ if length(t)>1 +%$ if t(1) %$ DATA = [NaN(1,ts.vobs); transpose(0:1:49)]; %$ t(2) = dassert(a.data,DATA,1e-15); %$ DATA = [NaN(2,ts.vobs); transpose(0:1:48)]; diff --git a/src/@dseries/lead.m b/src/@dseries/lead.m index 5c5a984d10e505d301c69ff3163b0b2785cd989b..bec294e3d84ae1aad78d7c4789db4ba397849a94 100644 --- a/src/@dseries/lead.m +++ b/src/@dseries/lead.m @@ -1,28 +1,29 @@ -function us = lead(ts,p) % --*-- Unitary tests --*-- +function q = lead(o, p) % --*-- Unitary tests --*-- -%@info: -%! @deftypefn {Function File} {@var{us} =} lead (@var{ts}) -%! @anchor{lag} -%! @sp 1 -%! Computes leaded time series. -%! @sp 2 -%! @strong{Inputs} -%! @sp 1 -%! @table @var -%! @item ts -%! Dynare time series object, instantiated by @ref{dseries} -%! @end table -%! @sp 2 -%! @strong{Outputs} -%! @sp 1 -%! @table @var -%! @item us -%! Dynare time series object with transformed data field. -%! @end table -%! @end deftypefn -%@eod: +% Returns a lagged time series +% +% INPUTS +% - o [dseries] +% - p [integer] Number of leads +% +% OUTPUTS +% - o [dseries] +% +% EXAMPLE +% Define a dseries object as follows: +% +% >> o = dseries(transpose(1:5)) +% +% then o.lag(1) returns +% +% | lead(Variable_1,1) +% 1Y | 2 +% 2Y | 3 +% 3Y | 4 +% 4Y | 5 +% 5Y | NaN -% Copyright (C) 2013 Dynare Team +% Copyright (C) 2013-2015 Dynare Team % % This file is part of Dynare. % @@ -44,41 +45,45 @@ if nargin<2 p = 1; end +% Check second input argument if p<=0 - error('dseries::lead: Second input argument must be strictly positive! Use lag method instead.') + error('dseries:WrongInputArguments','Second input argument must be strictly positive! Use lag method instead.') +end + +if ~isint(p) + error('dseries:WrongInputArguments','Second input argument must be an integer!') end % Copy of ts dseries object -us = ts; +q = copy(o); % Update data member -us.data = [ ts.data(p+1:end,:); NaN(p, vobs(ts));]; +q.data = [ o.data(p+1:end,:); NaN(p, vobs(o));]; -for i=1:vobs(ts) - us.name(i) = {[ 'lead(' ts.name{i} ',' int2str(p) ')']}; - us.tex(i) = {[ ts.tex{i} '_{+' int2str(p) '}']}; +for i=1:vobs(o) + q.name(i) = {[ 'lead(' q.name{i} ',' int2str(p) ')']}; + q.tex(i) = {[ q.tex{i} '_{+' int2str(p) '}']}; end %@test:1 -%$ t = zeros(4,1); -%$ %$ try -%$ data = transpose(0:1:50); +%$ data = transpose(1:50); %$ ts = dseries(data,'1950Q1'); %$ a = ts.lead; %$ b = ts.lead.lead; %$ c = lead(ts,2); -%$ t(1) = 1; +%$ t(1) = true; %$ catch -%$ t = 0; +%$ t(1) = false; %$ end %$ -%$ if length(t)>1 -%$ DATA = [transpose(1:50); NaN(1,ts.vobs)]; -%$ t(2) = dassert(a.data,DATA,1e-15); -%$ DATA = [transpose(2:50); NaN(2,ts.vobs)]; -%$ t(3) = dassert(b.data,DATA,1e-15); -%$ t(4) = dassert(b.data,c.data,1e-15); +%$ if t(1) +%$ +%$ DATA = [data(2:end); NaN(1)]; +%$ t(2) = dassert(a.data, DATA, 1e-15); +%$ DATA = [data(3:end); NaN(2,1)]; +%$ t(3) = dassert(b.data, DATA, 1e-15); +%$ t(4) = dassert(c.data, DATA, 1e-15); %$ end %$ %$ T = all(t); diff --git a/src/@dseries/minus.m b/src/@dseries/minus.m index 2b6bb0d866fc55eb66bab590f536738f3994c203..3fe215c6f9917ca93f936198aa3bb2fe24a02f37 100644 --- a/src/@dseries/minus.m +++ b/src/@dseries/minus.m @@ -1,29 +1,33 @@ -function A = minus(B,C) % --*-- Unitary tests --*-- - -%@info: -%! @deftypefn {Function File} {@var{A} =} minus (@var{B},@var{C}) -%! @anchor{@dseries/minus} -%! @sp 1 -%! Overloads the minus method for the Dynare time series class (@ref{dseries}). -%! @sp 2 -%! @strong{Inputs} -%! @sp 1 -%! @table @ @var -%! @item B -%! Dynare time series object instantiated by @ref{dseries}. -%! @item C -%! Dynare time series object instantiated by @ref{dseries}. -%! @end table -%! @sp 1 -%! @strong{Outputs} -%! @sp 1 -%! @table @ @var -%! @item A -%! Dynare time series object. -%! @end deftypefn -%@eod: - -% Copyright (C) 2012-2014, Dynare Team +function q = minus(o, p) % --*-- Unitary tests --*-- + +% Overloads the minus operator for dseries objects. +% +% INPUTS +% - o [dseries] +% - p [dseries] +% +% OUTPUTS +% - q [dseries] +% +% EXAMPLE +% Define a dseries object: +% +% >> a = dseries(transpose(1:5)); +% +% Then we have +% +% >> a-a +% +% ans is a dseries object: +% +% | minus(Variable_1;Variable_1) +% 1Y | 0 +% 2Y | 0 +% 3Y | 0 +% 4Y | 0 +% 5Y | 0 + +% Copyright (C) 2012-2015, Dynare Team % % This file is part of Dynare. % @@ -40,68 +44,68 @@ function A = minus(B,C) % --*-- Unitary tests --*-- % You should have received a copy of the GNU General Public License % along with Dynare. If not, see <http://www.gnu.org/licenses/>. -if isnumeric(B) && (isscalar(B) || isvector(B)) - if ~isdseries(C) - error('dseries::minus: Second input argument must be a dseries object!') +if isnumeric(o) && (isscalar(o) || isvector(o)) + if ~isdseries(p) + error('dseries:WrongInputArguments', 'Second input argument must be a dseries object!') end - A = C; - A.data = bsxfun(@minus,B,C.data); + q = copy(p); + q.data = bsxfun(@minus, o, p.data); return; end -if isnumeric(C) && (isscalar(C) || isvector(C)) - if ~isdseries(B) +if isnumeric(p) && (isscalar(p) || isvector(p)) + if ~isdseries(o) error('dseries::minus: First input argument must be a dseries object!') end - A = B; - A.data = bsxfun(@minus,B.data,C); + q = copy(o); + q.data = bsxfun(@minus,o.data,p); return end -if ~isequal(vobs(B), vobs(C)) && ~(isequal(vobs(B),1) || isequal(vobs(C),1)) - error(['dseries::minus: Cannot substract ' inputname(1) ' and ' inputname(2) ' (wrong number of variables)!']) +if ~isequal(vobs(o), vobs(p)) && ~(isequal(vobs(o),1) || isequal(vobs(p),1)) + error('dseries:WrongInputArguments', 'Cannot substract %s and %s (wrong number of variables)!', inputname(1), inputname(2)) else - if vobs(B)>vobs(C) - idB = 1:vobs(B); - idC = ones(1:vobs(B)); - elseif vobs(B)<vobs(C) - idB = ones(1,vobs(C)); - idC = 1:vobs(C); + if vobs(o)>vobs(p) + ido = 1:vobs(o); + idp = ones(1:vobs(o)); + elseif vobs(o)<vobs(p) + ido = ones(1,vobs(p)); + idp = 1:vobs(p); else - idB = 1:vobs(B); - idC = 1:vobs(C); + ido = 1:vobs(o); + idp = ido; end end -if ~isequal(frequency(B),frequency(C)) - error(['dseries::plus: Cannot substract ' inputname(1) ' and ' inputname(2) ' (frequencies are different)!']) +if ~isequal(frequency(o),frequency(p)) + error('dseries:WrongInputArguments', 'Cannot substract %s and %s (frequencies are different)!', inputname(1), inputname(2)) end -if ~isequal(nobs(B), nobs(C)) || ~isequal(firstdate(B),firstdate(C)) - [B, C] = align(B, C); +if ~isequal(nobs(o), nobs(p)) || ~isequal(firstdate(o),firstdate(p)) + [o, p] = align(o, p); end -if isempty(B) - A = -C; +if isempty(o) + q = -copy(p); return end -if isempty(C) - A = B; +if isempty(p) + q = copy(o); return end -A = dseries(); +q = dseries(); -A.dates = B.dates; -A_vobs = max(vobs(B), vobs(C)); -A.name = cell(A_vobs,1); -A.tex = cell(A_vobs,1); -for i=1:A_vobs - A.name(i) = {['minus(' B.name{idB(i)} ';' C.name{idC(i)} ')']}; - A.tex(i) = {['(' B.tex{idB(i)} '-' C.tex{idC(i)} ')']}; +q.dates = o.dates; +q_vobs = max(vobs(o), vobs(p)); +q.name = cell(q_vobs,1); +q.tex = cell(q_vobs,1); +for i=1:q_vobs + q.name(i) = {['minus(' o.name{ido(i)} ';' p.name{idp(i)} ')']}; + q.tex(i) = {['(' o.tex{ido(i)} '-' p.tex{idp(i)} ')']}; end -A.data = bsxfun(@minus,B.data,C.data); +q.data = bsxfun(@minus, o.data, p.data); %@test:1 %$ % Define a datasets. diff --git a/src/@dseries/mpower.m b/src/@dseries/mpower.m index 3b327d0c6e1f9b8d59693b8a2edda05a49b60027..e0643b43aecc795b95bca046d620809199e96007 100644 --- a/src/@dseries/mpower.m +++ b/src/@dseries/mpower.m @@ -1,29 +1,15 @@ -function A = mpower(B,C) % --*-- Unitary tests --*-- +function q = mpower(o, p) % --*-- Unitary tests --*-- -%@info: -%! @deftypefn {Function File} {@var{A} =} mpower (@var{B},@var{C}) -%! @anchor{@dseries/mpower} -%! @sp 1 -%! Overloads the mpower method for the Dynare time series class (@ref{dseries}). -%! @sp 2 -%! @strong{Inputs} -%! @sp 1 -%! @table @ @var -%! @item B -%! Dynare time series object instantiated by @ref{dseries}, with T observations and N variables. -%! @item C -%! Real scalar or a dseries object with T observations and N variables. -%! @end table -%! @sp 1 -%! @strong{Outputs} -%! @sp 1 -%! @table @ @var -%! @item A -%! dseries object with T observations and N variables. -%! @end deftypefn -%@eod: +% Overloads the power (^) operator for dseries objects. +% +% INPUTS +% - o [dseries] A dseries object with T observations and N variables. +% - p [real] A real scalar. +% +% OUTPUTS +% - q [dseries] A dseries object with T observations and N variables. -% Copyright (C) 2013 Dynare Team +% Copyright (C) 2013-2015 Dynare Team % % This file is part of Dynare. % @@ -40,55 +26,55 @@ function A = mpower(B,C) % --*-- Unitary tests --*-- % You should have received a copy of the GNU General Public License % along with Dynare. If not, see <http://www.gnu.org/licenses/>. -if isnumeric(B) && isvector(B) && length(B)>1 - if ~isdseries(C) - error('dseries::mpower: Second input argument must be a dseries object!') +if isnumeric(o) && isvector(o) && length(o)>1 + if ~isdseries(p) + error('dseries:WrongInputArguments', 'Second input argument must be a dseries object!') end - A = C; - A.data = bsxfun(@power,C.data,B); + q = copy(p); + q.data = bsxfun(@power, p.data, o); return; end -if isnumeric(C) && isvector(C) && length(C)>1 - if ~isdseries(B) - error('dseries::mpower: First input argument must be a dseries object!') +if isnumeric(p) && isvector(p) && length(p)>1 + if ~isdseries(o) + error('dseries:WrongInputArguments', 'First input argument must be a dseries object!') end - A = B; - A.data = bsxfun(@power,B.data,C); + q = copy(o); + q.data = bsxfun(@power, o.data, p); return end -if isdseries(B) && isnumeric(C) && isreal(C) && isscalar(C) - A = dseries(); - A.dates = B.dates; - A.data = B.data.^C; - A.name = cell(vobs(A),1); - A.tex = cell(vobs(A),1); - for i=1:vobs(A) - A.name(i) = {['power(' B.name{i} ';' num2str(C) ')']}; - A.tex(i) = {[B.tex{i} '^' num2str(C) ]}; +if isdseries(o) && isnumeric(p) && isreal(p) && isscalar(p) + q = dseries(); + q.dates = o.dates; + q.data = o.data.^p; + q.name = cell(vobs(q),1); + q.tex = cell(vobs(q),1); + for i=1:vobs(q) + q.name(i) = {['power(' o.name{i} ';' num2str(p) ')']}; + q.tex(i) = {[o.tex{i} '^' num2str(p) ]}; end return end -if isdseries(B) && isdseries(C) - if isequal(nobs(B),nobs(C)) && isequal(vobs(B), vobs(C)) && isequal(frequency(B),frequency(C)) - A = dseries(); - A.data = B.data.^C.data; - A.dates = B.dates; - A.name = cell(vobs(A),1); - A.tex = cell(vobs(A),1); - for i=1:vobs(A) - A.name(i) = {['power(' B.name{i} ';' C.name{i} ')']}; - A.tex(i) = {[B.tex{i} '^{' C.tex{i} '}']}; +if isdseries(o) && isdseries(p) + if isequal(nobs(o),nobs(p)) && isequal(vobs(o), vobs(p)) && isequal(frequency(o),frequency(p)) + q = dseries(); + q.data = (o.data).^p.data; + q.dates = o.dates; + q.name = cell(vobs(q),1); + q.tex = cell(vobs(q),1); + for i=1:vobs(q) + q.name(i) = {['power(' o.name{i} ';' p.name{i} ')']}; + q.tex(i) = {[o.tex{i} '^{' p.tex{i} '}']}; end else - error('dseries::mpower: If both input arguments are dseries objects, they must have the same numbers of variables and observations and common frequency!') + error('dseries:WrongInputArguments', 'If both input arguments are dseries objects, they must have the same numbers of variables and observations and common frequency!') end return end -error(['dseries::mpower: Wrong calling sequence!']) +error('dseries:WrongInputArguments', 'Wrong calling sequence! Please check the manual.') %@test:1 %$ % Define a datasets. @@ -103,9 +89,9 @@ error(['dseries::mpower: Wrong calling sequence!']) %$ ts1 = dseries(A,[],A_name,[]); %$ ts2 = dseries(B,[],B_name,[]); %$ ts3 = ts1^ts2; -%$ t = 1; +%$ t(1) = true; %$ catch -%$ t = 0; +%$ t(1) = false; %$ end %$ %$ if t(1) @@ -130,9 +116,9 @@ error(['dseries::mpower: Wrong calling sequence!']) %$ try %$ ts1 = dseries(A,[],A_name,[]); %$ ts3 = ts1^2; -%$ t = 1; +%$ t(1) = true; %$ catch -%$ t = 0; +%$ t(1) = false; %$ end %$ %$ if t(1) @@ -152,9 +138,9 @@ error(['dseries::mpower: Wrong calling sequence!']) %$ % Use the power %$ try %$ ts2 = ts1^transpose(1:3); -%$ t = 1; +%$ t(1) = true; %$ catch -%$ t = 0; +%$ t(1) = false; %$ end %$ %$ if t(1) diff --git a/src/@dseries/plus.m b/src/@dseries/plus.m index d37b50621c7a640cfeb6e8b6739b03259ef9916b..8e38b7e89a5feefbc2cbe29f15cc6390a9e5f05c 100644 --- a/src/@dseries/plus.m +++ b/src/@dseries/plus.m @@ -1,29 +1,15 @@ -function A = plus(B,C) % --*-- Unitary tests --*-- +function q = plus(o, p) % --*-- Unitary tests --*-- -%@info: -%! @deftypefn {Function File} {@var{A} =} plus (@var{B},@var{C}) -%! @anchor{@dseries/plus} -%! @sp 1 -%! Overloads the plus method for the Dynare time series class (@ref{dseries}). -%! @sp 2 -%! @strong{Inputs} -%! @sp 1 -%! @table @ @var -%! @item B -%! Dynare time series object instantiated by @ref{dseries}. -%! @item C -%! Dynare time series object instantiated by @ref{dseries}. -%! @end table -%! @sp 1 -%! @strong{Outputs} -%! @sp 1 -%! @table @ @var -%! @item A -%! Dynare time series object. -%! @end deftypefn -%@eod: +% Overloads the plus (+) operator for dseries objects. +% +% INPUTS +% - o [dseries, real] +% - p [dseries, real] +% +% OUTPUTS +% - q [dseries] -% Copyright (C) 2011-2014 Dynare Team +% Copyright (C) 2011-2015 Dynare Team % % This file is part of Dynare. % @@ -40,68 +26,68 @@ function A = plus(B,C) % --*-- Unitary tests --*-- % You should have received a copy of the GNU General Public License % along with Dynare. If not, see <http://www.gnu.org/licenses/>. -if isnumeric(B) && (isscalar(B) || isvector(B)) - if ~isdseries(C) +if isnumeric(o) && (isscalar(o) || isvector(o)) + if ~isdseries(p) error('dseries::plus: Second input argument must be a dseries object!') end - A = C; - A.data = bsxfun(@plus,C.data,B); - return; + q = copy(p); + q.data = bsxfun(@plus, q.data, o); + return end -if isnumeric(C) && (isscalar(C) || isvector(C)) - if ~isdseries(B) +if isnumeric(p) && (isscalar(p) || isvector(p)) + if ~isdseries(o) error('dseries::plus: First input argument must be a dseries object!') end - A = B; - A.data = bsxfun(@plus,B.data,C); + q = copy(o); + q.data = bsxfun(@plus,o.data,p); return end -if ~isequal(vobs(B), vobs(C)) && ~(isequal(vobs(B), 1) || isequal(vobs(C), 1)) +if ~isequal(vobs(o), vobs(p)) && ~(isequal(vobs(o), 1) || isequal(vobs(p), 1)) error(['dseries::plus: Cannot add ' inputname(1) ' and ' inputname(2) ' (wrong number of variables)!']) else - if vobs(B)>vobs(C) - idB = 1:vobs(B); - idC = ones(1,vobs(B)); - elseif vobs(B)<vobs(C) - idB = ones(1,vobs(C)); - idC = 1:vobs(C); + if vobs(o)>vobs(p) + ido = 1:vobs(o); + idp = ones(1,vobs(o)); + elseif vobs(o)<vobs(p) + ido = ones(1,vobs(p)); + idp = 1:vobs(p); else - idB = 1:vobs(B); - idC = 1:vobs(C); + ido = 1:vobs(o); + idp = ido; end end -if ~isequal(frequency(B),frequency(C)) +if ~isequal(frequency(o),frequency(p)) error(['dseries::plus: Cannot add ' inputname(1) ' and ' inputname(2) ' (frequencies are different)!']) end -if ~isequal(nobs(B), nobs(C)) || ~isequal(firstdate(B),firstdate(C)) - [B, C] = align(B, C); +if ~isequal(nobs(o), nobs(p)) || ~isequal(firstdate(o),firstdate(p)) + [o, p] = align(o, p); end -if isempty(B) - A = C; +if isempty(o) + q = p; return end -if isempty(C) - A = B; +if isempty(p) + q = o; return end -A = dseries(); +q = dseries(); -A.data = bsxfun(@plus,B.data,C.data); -A.dates = B.dates; +q.data = bsxfun(@plus,o.data,p.data); +q.dates = o.dates; -A_vobs = max(vobs(B), vobs(C)); -A.name = cell(A_vobs,1); -A.tex = cell(A_vobs,1); -for i=1:A_vobs - A.name(i) = {['plus(' B.name{idB(i)} ';' C.name{idC(i)} ')']}; - A.tex(i) = {['(' B.tex{idB(i)} '+' C.tex{idC(i)} ')']}; +q_vobs = max(vobs(o), vobs(p)); +q.name = cell(q_vobs,1); +q.tex = cell(q_vobs,1); +for i=1:q_vobs + q.name(i) = {['plus(' o.name{ido(i)} ';' p.name{idp(i)} ')']}; + q.tex(i) = {['(' o.tex{ido(i)} '+' p.tex{idp(i)} ')']}; end %@test:1 @@ -111,16 +97,14 @@ end %$ % Define names %$ A_name = {'A1';'A2'}; B_name = {'B1'}; %$ -%$ t = zeros(5,1); -%$ %$ % Instantiate a time series object. %$ try %$ ts1 = dseries(A,[],A_name,[]); %$ ts2 = dseries(B,[],B_name,[]); %$ ts3 = ts1+ts2; -%$ t(1) = 1; +%$ t(1) = true; %$ catch -%$ t = 0; +%$ t = false; %$ end %$ %$ if length(t)>1 @@ -139,17 +123,15 @@ end %$ % Define names %$ A_name = {'A1';'A2'}; B_name = {'B1'}; %$ -%$ t = zeros(5,1); -%$ %$ % Instantiate a time series object. %$ try %$ ts1 = dseries(A,[],A_name,[]); %$ ts2 = dseries(B,[],B_name,[]); %$ ts3 = ts1+ts2; %$ ts4 = ts3+ts1; -%$ t(1) = 1; +%$ t(1) = true; %$ catch -%$ t = 0; +%$ t = false; %$ end %$ %$ if length(t)>1 @@ -169,16 +151,14 @@ end %$ % Define names %$ A_name = {'A1';'A2'}; B_name = {'B1'}; %$ -%$ t = zeros(5,1); -%$ %$ % Instantiate a time series object. %$ try %$ ts1 = dseries(A,[],A_name,[]); %$ ts2 = dseries(B,[],B_name,[]); %$ ts3 = ts1+ts2; -%$ t(1) = 1; +%$ t(1) = true; %$ catch -%$ t = 0; +%$ t = false; %$ end %$ %$ if length(t)>1 @@ -191,15 +171,13 @@ end %@eof:3 %@test:4 -%$ t = zeros(7,1); -%$ %$ try %$ ts = dseries(transpose(1:5),'1950q1',{'Output'}, {'Y_t'}); %$ us = dseries(transpose(1:5),'1949q4',{'Consumption'}, {'C_t'}); %$ vs = ts+us; -%$ t(1) = 1; +%$ t(1) = true; %$ catch -%$ t = 0; +%$ t = false; %$ end %$ %$ if length(t)>1 @@ -215,15 +193,13 @@ end %@eof:4 %@test:5 -%$ t = zeros(7,1); -%$ %$ try %$ ts = dseries(transpose(1:5),'1950q1',{'Output'}, {'Y_t'}); %$ us = dseries(transpose(1:7),'1950q1',{'Consumption'}, {'C_t'}); %$ vs = ts+us; -%$ t(1) = 1; +%$ t(1) = true; %$ catch -%$ t = 0; +%$ t = false; %$ end %$ %$ if length(t)>1 @@ -239,15 +215,13 @@ end %@eof:5 %@test:6 -%$ t = zeros(8,1); -%$ %$ try %$ ts = dseries(transpose(1:5),'1950q1',{'Output'}, {'Y_t'}); %$ us = dseries(transpose(1:7),'1950q1',{'Consumption'}, {'C_t'}); %$ vs = ts+us('1950q1').data; -%$ t(1) = 1; +%$ t(1) = true; %$ catch -%$ t = 0; +%$ t = false; %$ end %$ %$ if length(t)>1 @@ -264,15 +238,13 @@ end %@eof:6 %@test:7 -%$ t = zeros(8,1); -%$ %$ try %$ ts = dseries([transpose(1:5), transpose(1:5)],'1950q1'); %$ us = dseries([transpose(1:7),2*transpose(1:7)],'1950q1'); %$ vs = ts+us('1950q1').data; -%$ t(1) = 1; +%$ t(1) = true; %$ catch -%$ t = 0; +%$ t = false; %$ end %$ %$ if length(t)>1