diff --git a/matlab/dr_block.m b/matlab/dr_block.m index bb51b72610bbb94f35760680f8d37d2a65c17669..21d8ab254baaa3bedef833900a77568c3db9f71e 100644 --- a/matlab/dr_block.m +++ b/matlab/dr_block.m @@ -34,7 +34,7 @@ function [dr,info,M_,options_,oo_] = dr_block(dr,task,M_,options_,oo_,varargin) % none. % -% Copyright (C) 2010-2020 Dynare Team +% Copyright (C) 2010-2021 Dynare Team % % This file is part of Dynare. % @@ -63,13 +63,12 @@ end z = repmat(dr.ys,1,M_.maximum_lead + M_.maximum_lag + 1); zx = repmat([oo_.exo_simul oo_.exo_det_simul],M_.maximum_lead + M_.maximum_lag + 1, 1); -if (isfield(M_,'block_structure')) - data = M_.block_structure.block; - Size = length(M_.block_structure.block); -else - data = M_; - Size = 1; + +if ~isfield(M_,'block_structure') + error('Option ''block'' has not been specified') end +data = M_.block_structure.block; + if options_.bytecode [~, data]= bytecode('dynamic','evaluate', z, zx, M_.params, dr.ys, 1, data); else @@ -93,7 +92,7 @@ n_sv = size(dr.state_var, 2); dr.ghx = zeros(M_.endo_nbr, length(dr.state_var)); dr.exo_var = 1:M_.exo_nbr; dr.ghu = zeros(M_.endo_nbr, M_.exo_nbr); -for i = 1:Size +for i = 1:length(data) ghx = []; indexi_0 = 0; if (verbose)