From d7c75e9b7507214fa0b59da68e7be1b2bc6d7377 Mon Sep 17 00:00:00 2001 From: Houtan Bastani Date: Thu, 11 May 2017 11:36:06 +0200 Subject: [PATCH] var_forecast: clean up for loop in var_forecast function --- matlab/writeVarExpectationFunction.m | 29 ++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/matlab/writeVarExpectationFunction.m b/matlab/writeVarExpectationFunction.m index f67f9af3f..57b1e8a48 100644 --- a/matlab/writeVarExpectationFunction.m +++ b/matlab/writeVarExpectationFunction.m @@ -7,7 +7,7 @@ function writeVarExpectationFunction(var_model_name, horizon) % var_model_name [string] the name of the VAR model % % horizon [int] the forecast horizon -% +% % OUTPUTS % % NONE @@ -136,24 +136,29 @@ if max(horizon) == 1 printInsideOfLoop(fid, mu, A, false); fprintf(fid, 'ret(1, :) = y(1:%d);\n', lm); else - fprintf(fid, 'retidx = 1;\n'); - fprintf(fid, 'ret = zeros(%d, %d);\n', length(horizon), lm); + if length(horizon) ~= 1 + fprintf(fid, 'retidx = 1;\n'); + fprintf(fid, 'ret = zeros(%d, %d);\n', length(horizon), lm); + end + fprintf(fid, 'for i=1:%d\n', max(horizon)); printInsideOfLoop(fid, mu, A, true); - if length(horizon) == 1 - fprintf(fid, ' if %d == i\n', horizon); - else + if length(horizon) ~= 1 fprintf(fid, ' if any(['); fprintf(fid, '%d ', horizon); fprintf(fid, '] == i)\n'); + fprintf(fid, ' %% If we want a forecast at more than one\n'); + fprintf(fid, ' %% horizon save it in ''ret'' when encountered\n'); + fprintf(fid, ' ret(retidx, :) = y(1:%d);\n', lm); + fprintf(fid, ' retidx = retidx + 1;\n'); + fprintf(fid, ' end\n'); end - fprintf(fid, ' ret(retidx, :) = y(1:%d);\n', lm); - fprintf(fid, ' retidx = retidx + 1;\n'); -% fprintf(fid, ' ret(['); -% fprintf(fid, '%d ', horizon); -% fprintf(fid, '] == i, :) = y(1:%d);\n', lm); - fprintf(fid, ' end\n'); + fprintf(fid, 'end\n'); + + if length(horizon) == 1 + fprintf(fid, 'ret(1, :) = y(1:%d);\n', lm); + end end %% close file