diff --git a/matlab/@dseries/remove.m b/matlab/@dseries/remove.m new file mode 100644 index 0000000000000000000000000000000000000000..db9690cfd6c2ef800d1698ea983d3f7f6c108d66 --- /dev/null +++ b/matlab/@dseries/remove.m @@ -0,0 +1,98 @@ +function ts = remove(ts,a) % --*-- Unitary tests --*-- + +% Removes a variable from a dseries object (alias for the pop method). + +%@info: +%! @deftypefn {Function File} {@var{ts} =} pop (@var{ts}, @var{a}) +%! @anchor{dseries/pop} +%! @sp 1 +%! Remove method for the dseries class. Removes a variable from a dseries object. +%! @sp 2 +%! @strong{Inputs} +%! @sp 1 +%! @table @ @var +%! @item ts +%! Object instantiated by @ref{dseries}. +%! @item a +%! String, name of the variable to be removed. +%! @end table +%! @sp 2 +%! @strong{Outputs} +%! @sp 1 +%! @table @ @var +%! @item ts +%! Object instantiated by @ref{dseries}, without variable (@var{a}). +%! @end table +%! @end deftypefn +%@eod: + +% Copyright (C) 2014 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 <http://www.gnu.org/licenses/>. + +ts = pop(ts, a); + +%@test:1 +%$ % Define a datasets. +%$ A = rand(10,3); +%$ +%$ % Define names +%$ A_name = {'A1';'A2';'A3'}; +%$ +%$ t = zeros(4,1); +%$ +%$ % Instantiate a time series object. +%$ try +%$ ts1 = dseries(A,[],A_name,[]); +%$ ts2 = remove(ts1,'A2'); +%$ t(1) = 1; +%$ catch +%$ t = 0; +%$ end +%$ +%$ if length(t)>1 +%$ t(2) = dyn_assert(ts2.vobs,2); +%$ t(3) = dyn_assert(ts2.nobs,10); +%$ t(4) = dyn_assert(ts2.data,[A(:,1), A(:,3)],1e-15); +%$ end +%$ T = all(t); +%@eof:1 + +%@test:2 +%$ % Define a datasets. +%$ A = rand(10,3); +%$ +%$ % Define names +%$ A_name = {'A1';'A2';'A3'}; +%$ +%$ t = zeros(4,1); +%$ +%$ % Instantiate a time series object. +%$ try +%$ ts1 = dseries(A,[],A_name,[]); +%$ ts2 = ts1.remove('A2'); +%$ t(1) = 1; +%$ catch +%$ t = 0; +%$ end +%$ +%$ if length(t)>1 +%$ t(2) = dyn_assert(ts2.vobs,2); +%$ t(3) = dyn_assert(ts2.nobs,10); +%$ t(4) = dyn_assert(ts2.data,[A(:,1), A(:,3)],1e-15); +%$ end +%$ T = all(t); +%@eof:2 \ No newline at end of file diff --git a/matlab/@dseries/subsref.m b/matlab/@dseries/subsref.m index d30c2142d394c9986aec7619d5af7a5ac7c87e0e..f3713016ee87c02e289382f0f1db1d63e29eecf1 100644 --- a/matlab/@dseries/subsref.m +++ b/matlab/@dseries/subsref.m @@ -90,7 +90,7 @@ switch S(1).type else B = feval(S(1).subs,A); end - case {'cumsum','insert','pop','cumprod'} % Methods with less than three argument. + case {'cumsum','insert','pop','cumprod','remove'} % Methods with less than three argument. if length(S)>1 && isequal(S(2).type,'()') if isempty(S(2).subs) B = feval(S(1).subs,A);