diff --git a/matlab/estimation/set_number_of_subdraws.m b/matlab/estimation/set_number_of_subdraws.m index a54d187f3031f5ab1f3ec03904bf84b7be771173..c6dcf6911d635903353e46e964907fdcc218f070 100644 --- a/matlab/estimation/set_number_of_subdraws.m +++ b/matlab/estimation/set_number_of_subdraws.m @@ -1,5 +1,5 @@ -function [sub_draws, error_flag]=set_number_of_subdraws(M_,options_) -% function [sub_draws, error_flag]=set_number_of_subdraws(M_,options_) +function [sub_draws, error_flag, NumberOfDrawsPerChain]=set_number_of_subdraws(M_,options_) +% function [sub_draws, error_flag, NumberOfDrawsPerChain]=set_number_of_subdraws(M_,options_) % Set option field sub_draws based on size of available sample % Inputs: % M_ [structure] Dynare model structure @@ -9,6 +9,8 @@ function [sub_draws, error_flag]=set_number_of_subdraws(M_,options_) % sub_draws [scalar] number of sub-draws % error_flag [boolean] error indicate of insufficient draws are % available +% NumberOfDrawsPerChain [integer] number of available posterior draws +% per chain % Copyright © 2024 Dynare Team % @@ -54,11 +56,13 @@ else pfiles = dir(sprintf('%s/hssmc/particles-*.mat', M_.dname)); posterior = load(sprintf('%s/hssmc/particles-%u-%u.mat', M_.dname, length(pfiles), length(pfiles))); NumberOfDraws = size(posterior.particles,2); + NumberOfDrawsPerChain=NumberOfDraws; elseif isdime(options_) posterior = load(sprintf('%s%s%s%schains.mat', M_.dname, filesep(), 'dime', filesep())); tune = posterior.tune; chains = reshape(posterior.chains(end-tune:end,:,:), [], size(posterior.chains, 3)); NumberOfDraws=size(chains,1); + NumberOfDrawsPerChain=NumberOfDraws; else error('set_number_of_subdraws:: case should not happen. Please contact the developers') end