Check that the initial and terminal dates are in the ranges of the

dseries objects involved in the recursive expression.
time-shift
Stéphane Adjemian (Scylla) 2014-05-02 15:28:27 +02:00 committed by Stéphane Adjemian (Charybdis)
parent 61d6276d47
commit 59a787f47f
1 changed files with 10 additions and 3 deletions

View File

@ -73,16 +73,23 @@ end
% Remove duplicates.
variables = unique(variables);
% Test that all the involved variables are available dseries objects.
% Test that all the involved variables are available dseries objects. Also check
% that these time series are defined over the time range given by d1 and d2.
for i=1:length(variables)
try
var = evalin('caller',variables{i});
catch
error(['Variable ' variables{i} ' is unknown!'])
error(['dseries::from: Variable ' variables{i} ' is unknown!'])
end
if ~isdseries(var)
error(['Variable ' variables{i} ' is not a dseries object!'])
error(['dseries::from: Variable ' variables{i} ' is not a dseries object!'])
else
if d1<var.dates(1)
error(sprintf('dseries::from: First date in variable %s is posterior to %s!\n Check the initial date of the loop.', variables{i}, char(d1)))
end
if d2>var.dates(end)
error(sprintf('dseries::from: Last date in variable %s is anterior to %s!\n Check the terminal date of the loop.', variables{i}, char(d2)))
end
eval(sprintf('%s = var;',variables{i}));
end
end