From 2d7d100810682e7fe7220f996fcb36ee6d62e704 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Adjemian=20=28Charybdis=29?= <stephane.adjemian@univ-lemans.fr> Date: Sat, 17 May 2014 17:14:52 +0200 Subject: [PATCH] Test that the names of the variables contained in the dseries objects are different. --- matlab/utilities/dseries/from.m | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/matlab/utilities/dseries/from.m b/matlab/utilities/dseries/from.m index ab54de128b..42ef92077d 100644 --- a/matlab/utilities/dseries/from.m +++ b/matlab/utilities/dseries/from.m @@ -141,6 +141,9 @@ end % Set the number of variables number_of_variables = size(leadlagtable,1); +% Initialize a cell array containing the names of the variables. +variable_names = cell(1); + % 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 (taking care of % the lags and leads) and check that each object is a singleton @@ -162,6 +165,15 @@ for i=1:number_of_variables msg = sprintf('dseries::from: Object %s must contain only one variable!\n',current_variable); error(msg) end + if i>1 + if ismember(var.name,variable_names) + error('dseries::from: All the dseries objects should contain variables with different names!') + else + variable_names(i) = {var.name{1}}; + end + else + variable_names(i) = {var.name{1}}; + end if d1<var.dates(1)+leadlagtable{i,2} msg = sprintf('dseries::from: Initial date of the loop (%s) is inconsistent with %s''s range!\n',char(d1),current_variable); msg = [msg, sprintf(' Initial date should be greater than or equal to %s.',char(var.dates(1)+leadlagtable{i,2}))]; @@ -221,11 +233,7 @@ list_of_variables = leadlagtable{1,1}; for i=2:number_of_variables list_of_variables = [list_of_variables, ',' leadlagtable{i,1}]; end -try - eval(sprintf('tmp = [%s];', list_of_variables)); -catch - error('dseries::from: All the dseries objects should contain variables with different names!') -end +eval(sprintf('tmp = [%s];', list_of_variables)); % Get base time index t1 = find(d1==tmp.dates); -- GitLab