From cb4fb6aaf1bba124d0137fccd1af34739ad3d15a Mon Sep 17 00:00:00 2001 From: Johannes Pfeifer Date: Tue, 11 Nov 2014 11:42:19 +0100 Subject: [PATCH] Replace eval-command in dynare_estimation.m by direct call to fields --- matlab/dynare_estimation.m | 53 ++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 31 deletions(-) diff --git a/matlab/dynare_estimation.m b/matlab/dynare_estimation.m index 30c816fb0..07b8c50a6 100644 --- a/matlab/dynare_estimation.m +++ b/matlab/dynare_estimation.m @@ -157,46 +157,37 @@ if nnobs > 1 && horizon > 0 vname = deblank(var_list(i,:)); for j=1:nnobs if mh_replic > 0 - eval(['oo_.RecursiveForecast.Mean.' vname '(j,:) =' ... - 'oo_recursive_{' int2str(nobs(j)) '}.MeanForecast.Mean.' ... - vname '(1:end);']); - eval(['oo_.RecursiveForecast.HPDinf.' vname '(j,:) =' ... - 'oo_recursive_{' int2str(nobs(j)) '}.MeanForecast.HPDinf.' ... - vname '(1:end);']); - eval(['oo_.RecursiveForecast.HPDsup.' vname '(j,:) =' ... - 'oo_recursive_{' int2str(nobs(j)) '}.MeanForecast.HPDsup.' ... - vname '(1:end);']); - eval(['oo_.RecursiveForecast.HPDTotalinf.' vname '(j,:) =' ... - 'oo_recursive_{' int2str(nobs(j)) '}.PointForecast.HPDinf.' ... - vname '(1:end);']); - eval(['oo_.RecursiveForecast.HPDTotalsup.' vname '(j,:) =' ... - 'oo_recursive_{' int2str(nobs(j)) '}.PointForecast.HPDsup.' ... - vname '(1:end);']); + oo_.RecursiveForecast.Mean.(vname)(j,:) = ... + oo_recursive_{nobs(j)}.MeanForecast.Mean.(vname); + oo_.RecursiveForecast.HPDinf.(vname)(j,:) = ... + oo_recursive_{nobs(j)}.MeanForecast.HPDinf.(vname); + oo_.RecursiveForecast.HPDsup.(vname)(j,:) = ... + oo_recursive_{nobs(j)}.MeanForecast.HPDsup.(vname); + oo_.RecursiveForecast.HPDTotalinf.(vname)(j,:) = ... + oo_recursive_{nobs(j)}.PointForecast.HPDinf.(vname); + oo_.RecursiveForecast.HPDTotalsup.(vname)(j,:) = ... + oo_recursive_{nobs(j)}.PointForecast.HPDsup.(vname); else - eval(['oo_.RecursiveForecast.Mean.' vname '(j,:) =' ... - 'oo_recursive_{' int2str(nobs(j)) '}.forecast.Mean.' ... - vname ';']); - eval(['oo_.RecursiveForecast.HPDinf.' vname '(j,:) =' ... - 'oo_recursive_{' int2str(nobs(j)) '}.forecast.HPDinf.' ... - vname ';']); - eval(['oo_.RecursiveForecast.HPDsup.' vname '(j,:) =' ... - 'oo_recursive_{' int2str(nobs(j)) '}.forecast.HPDsup.' ... - vname ';']); - end + oo_.RecursiveForecast.Mean.(vname)(j,:) =... + oo_recursive_{nobs(j)}.forecast.Mean.(vname); + oo_.RecursiveForecast.HPDinf.(vname)(j,:) =... + oo_recursive_{nobs(j)}.forecast.HPDinf.(vname); + oo_.RecursiveForecast.HPDsup.(vname)(j,:) =... + oo_recursive_{nobs(j)}.forecast.HPDsup.(vname); + end x = nobs(1)+nobs(j)-nobs(1)+(1:horizon); - y = eval(['oo_.RecursiveForecast.Mean.' vname '(j,:)']); - y1 = eval(['oo_.RecursiveForecast.HPDinf.' vname '(j,:)']); - y2 = eval(['oo_.RecursiveForecast.HPDsup.' vname '(j,:)']); + y = oo_.RecursiveForecast.Mean.(vname)(j,:); + y1 = oo_.RecursiveForecast.HPDinf.(vname)(j,:); + y2 = oo_.RecursiveForecast.HPDsup.(vname)(j,:); plot(x,y,'-b','linewidth',2) plot(x,y1,'--g', ... 'linewidth',1.5) plot(x,y2,'--g', ... 'linewidth',1.5) if mh_replic - y3 = eval(['oo_.RecursiveForecast.HPDTotalinf.' vname '(j,:)']); - y4 = eval(['oo_.RecursiveForecast.HPDTotalsup.' vname ... - '(j,:)']); + y3 = oo_.RecursiveForecast.HPDTotalinf.(vname)(j,:); + y4 = oo_.RecursiveForecast.HPDTotalsup.(vname)(j,:); plot(x,y3,'--r', ... 'linewidth',1.5) plot(x,y4,'--r','linewidth',1.5)