From aeb1b92e77cfcd81fb040a3b2f91f1876f1a43ad Mon Sep 17 00:00:00 2001 From: Johannes Pfeifer <jpfeifer@gmx.de> Date: Tue, 7 May 2024 14:00:24 +0200 Subject: [PATCH] :bug: make_ex_.m: correct matrix dimensions with datafile and exo_nbr==0 homotopy expects a matrix conformable with the initval_series --- matlab/perfect-foresight-models/make_ex_.m | 30 ++++++++++++---------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/matlab/perfect-foresight-models/make_ex_.m b/matlab/perfect-foresight-models/make_ex_.m index 3234afbeca..f3a9f483fb 100644 --- a/matlab/perfect-foresight-models/make_ex_.m +++ b/matlab/perfect-foresight-models/make_ex_.m @@ -49,22 +49,26 @@ if isempty(oo_.initval_series) error('histval and endval cannot be used simultaneously') end end -elseif M_.exo_nbr > 0 - x = oo_.initval_series{M_.exo_names{:}}.data; - oo_.exo_simul = x(M_.orig_maximum_lag-M_.maximum_lag+1:M_.orig_maximum_lag + options_.periods + M_.maximum_lead,:); - if ~isempty(M_.exo_histval) - oo_.exo_simul(1:M_.maximum_lag, :) ... - = M_.exo_histval(:, 1:M_.maximum_lag)'; +else + if M_.exo_nbr > 0 + x = oo_.initval_series{M_.exo_names{:}}.data; + oo_.exo_simul = x(M_.orig_maximum_lag-M_.maximum_lag+1:M_.orig_maximum_lag + options_.periods + M_.maximum_lead,:); + if ~isempty(M_.exo_histval) + oo_.exo_simul(1:M_.maximum_lag, :) ... + = M_.exo_histval(:, 1:M_.maximum_lag)'; + end + else + oo_.exo_simul=zeros(M_.maximum_lag + options_.periods + M_.maximum_lead,M_.exo_nbr); end -elseif M_.exo_det_nbr > 0 - x_det = oo_.initval_series{M_.exo_det_names{:}}.data; - oo_.exo_det_simul = x_det(M_.orig_maximum_lag-M_.maximum_lag+1:M_.orig_maximum_lag + options_.periods + M_.maximum_lead,:); - if ~isempty(M_.exo_det_histval) - oo_.exo_det_simul(1:M_.maximum_lag, :) ... - = M_.exo_det_histval(:, 1:M_.maximum_lag)'; + if M_.exo_det_nbr > 0 + x_det = oo_.initval_series{M_.exo_det_names{:}}.data; + oo_.exo_det_simul = x_det(M_.orig_maximum_lag-M_.maximum_lag+1:M_.orig_maximum_lag + options_.periods + M_.maximum_lead,:); + if ~isempty(M_.exo_det_histval) + oo_.exo_det_simul(1:M_.maximum_lag, :) ... + = M_.exo_det_histval(:, 1:M_.maximum_lag)'; + end end end - % Initialize oo_.exo_det_simul if M_.exo_det_nbr > 0 if isempty(M_.exo_det_histval) -- GitLab