From 79cca46dd6d0b9af3ffba1ba650242277eb94198 Mon Sep 17 00:00:00 2001 From: Marco Ratto Date: Thu, 23 Jan 2020 17:55:55 +0100 Subject: [PATCH] trap error when sub_draws is set to zero --- matlab/dynare_estimation_1.m | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/matlab/dynare_estimation_1.m b/matlab/dynare_estimation_1.m index b9abcbabb..a4ac05d0c 100644 --- a/matlab/dynare_estimation_1.m +++ b/matlab/dynare_estimation_1.m @@ -519,23 +519,27 @@ if (any(bayestopt_.pshape >0 ) && options_.mh_replic) || ... end end [error_flag,~,options_]= metropolis_draw(1,options_,estim_params_,M_); - if options_.bayesian_irf - if error_flag - error('Estimation::mcmc: I cannot compute the posterior IRFs!') + if ~(~isempty(options_.sub_draws) && options_.sub_draws==0) + if options_.bayesian_irf + if error_flag + error('Estimation::mcmc: I cannot compute the posterior IRFs!') + end + PosteriorIRF('posterior'); end - PosteriorIRF('posterior'); - end - if options_.moments_varendo - if error_flag - error('Estimation::mcmc: I cannot compute the posterior moments for the endogenous variables!') + if options_.moments_varendo + if error_flag + error('Estimation::mcmc: I cannot compute the posterior moments for the endogenous variables!') + end + oo_ = compute_moments_varendo('posterior',options_,M_,oo_,var_list_); end - oo_ = compute_moments_varendo('posterior',options_,M_,oo_,var_list_); - end - if options_.smoother || ~isempty(options_.filter_step_ahead) || options_.forecast - if error_flag - error('Estimation::mcmc: I cannot compute the posterior statistics!') + if options_.smoother || ~isempty(options_.filter_step_ahead) || options_.forecast + if error_flag + error('Estimation::mcmc: I cannot compute the posterior statistics!') + end + prior_posterior_statistics('posterior',dataset_,dataset_info); end - prior_posterior_statistics('posterior',dataset_,dataset_info); + else + fprintf('Estimation:mcmc: sub_draws was set to 0. Skipping posterior computations.') end xparam1 = get_posterior_parameters('mean',M_,estim_params_,oo_,options_); M_ = set_all_parameters(xparam1,estim_params_,M_);