From 3ef988dfcd3a330d6246aa6cef4507630963e534 Mon Sep 17 00:00:00 2001 From: Johannes Pfeifer Date: Fri, 1 Jan 2021 11:31:33 +0100 Subject: [PATCH] msbvar: provide error is chain is not specified See https://forum.dynare.org/t/cannot-have-number-of-chains-for-variance-or-coefficient-bigger-than-1/16650 --- matlab/ms-sbvar/ms_write_markov_file.m | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/matlab/ms-sbvar/ms_write_markov_file.m b/matlab/ms-sbvar/ms_write_markov_file.m index 7eaa5925f..ec6507fd6 100644 --- a/matlab/ms-sbvar/ms_write_markov_file.m +++ b/matlab/ms-sbvar/ms_write_markov_file.m @@ -52,6 +52,10 @@ for i_chain = 1:n_chains %//=====================================================// fprintf(fh,'//== Number of states for state_variable[%d] ==//\n', ... i_chain); + if ~isfield(options.ms.ms_chain(i_chain),'regime') ... + || isempty(options.ms.ms_chain(i_chain).regime) + error('Chain %u does not feature any regime states. Did you forget to specify them?',i_chain) + end n_states = length(options.ms.ms_chain(i_chain).regime); fprintf(fh,'%d\n\n',n_states);