diff --git a/matlab/resid.m b/matlab/resid.m index 75148e3586c5d8aca4441389f5561bfd0898981f..23a59e13e1cec785959e44c822267dc729dadc80 100644 --- a/matlab/resid.m +++ b/matlab/resid.m @@ -72,11 +72,7 @@ if options_.block && ~options_.bytecode oo_.steady_state,... [oo_.exo_steady_state; ... oo_.exo_det_steady_state], M_.params); - if isempty(M_.blocksMFS{i}) - idx = var_indx; - else - idx = M_.blocksMFS{i}; - end + idx = M_.blocksEQU{i}; z(idx) = r; end elseif options_.bytecode diff --git a/preprocessor/StaticModel.cc b/preprocessor/StaticModel.cc index c3f8db068a9c8063a9b0b848c844d708c6150c86..f2870a67ae714586cc98d0de592295e9f0717e1e 100644 --- a/preprocessor/StaticModel.cc +++ b/preprocessor/StaticModel.cc @@ -1502,6 +1502,15 @@ StaticModel::writeOutput(ostream &output, bool block) const output << "];" << endl; } + output << "M_.blocksEQU = cell(" << nb_blocks << ", 1);" << endl; + for (int b = 0; b < (int) nb_blocks; b++) + { + unsigned int block_size = getBlockSize(b); + output << "M_.blocksEQU{" << b+1 << "} = [ "; + for (int i = 0; i < (int) block_size; i++) + output << getBlockEquationID(b, i)+1 << "; "; + output << "];" << endl; + } } SymbolType