function [a,b] = align(a, b) % --*-- Unitary tests --*-- %@info: %! @deftypefn {Function File} {[@var{a}, @var{b}] =} align (@var{a}, @var{b}) %! @anchor{dseries/align} %! @sp 1 %! If dseries objects @var{a} and @var{b} are defined on different time ranges, extend @var{a} and/or %! @var{b} with NaNs so that they are defined on the same time range. %! @sp 2 %! @strong{Inputs} %! @sp 1 %! @table @ @var %! @item a %! Object instantiated by @ref{dseries}. %! @item b %! Object instantiated by @ref{dseries}. %! @end table %! @sp 2 %! @strong{Outputs} %! @sp 1 %! @table @ @var %! @item a %! Object instantiated by @ref{dseries}. %! @item b %! Object instantiated by @ref{dseries}. %! @end table %! @end deftypefn %@eod: % Copyright (C) 2013 Dynare Team % % This file is part of Dynare. % % Dynare is free software: you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation, either version 3 of the License, or % (at your option) any later version. % % Dynare is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with Dynare. If not, see . if ~isequal(frequency(a),frequency(b)) error(['dseries::align: ''' inputname(1) ''' and ''' inputname(2) ''' dseries objects must have common frequencies!']) end init = min(firstdate(a),firstdate(b)); last = max(lastdate(a),lastdate(b)); if isempty(intersect(a.dates,b.dates)) error(['dseries::align: ''' inputname(1) ''' and ''' inputname(2) ''' dseries object must have at least one common date!']) end a_init = init; b_init = init; a_last = last; b_last = last; if firstdate(b)>init n = firstdate(b)-init; b.data = [NaN(n,b.vobs); b.data]; b.nobs = b.nobs+n; b_init = init; end if firstdate(a)>init n = firstdate(a)-init; a.data = [NaN(n,a.vobs); a.data]; a.nobs = a.nobs+n; a_init = init; end if lastdate(b)