From 70a9c5e3460586ca44623f7620469d05b5c6f5a2 Mon Sep 17 00:00:00 2001 From: Michel Juillard Date: Wed, 9 Mar 2011 13:45:59 +0100 Subject: [PATCH] fixing bug for purely backward models (introduced in changeset 32c997f1ef7cc6b8f8a156f012f78c64b4f25234, 02/25/11) --- matlab/set_state_space.m | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/matlab/set_state_space.m b/matlab/set_state_space.m index 1f32512e2..00fa0d66f 100644 --- a/matlab/set_state_space.m +++ b/matlab/set_state_space.m @@ -91,12 +91,15 @@ kstate = [ repmat([1:endo_nbr]',klen-1,1) kron([klen:-1:2]',ones(endo_nbr,1)) .. zeros((klen-1)*endo_nbr,2)]; kiy = flipud(lead_lag_incidence(:,order_var))'; kiy = kiy(:); -kstate(1:endo_nbr,3) = kiy(1:endo_nbr)-nnz(lead_lag_incidence(2,:)); -kstate(kstate(:,3) < 0,3) = 0; -kstate(endo_nbr+1:end,4) = kiy(2*endo_nbr+1:end); -% put in E only the current variables that are not already in D +if max_lead > 0 + kstate(1:endo_nbr,3) = kiy(1:endo_nbr)-nnz(lead_lag_incidence(2,:)); + kstate(kstate(:,3) < 0,3) = 0; + kstate(endo_nbr+1:end,4) = kiy(2*endo_nbr+1:end); +else + kstate(:,4) = kiy(endo_nbr+1:end); +end kstate = kstate(i_kmask,:); - + dr.order_var = order_var; dr.inv_order_var = inv_order_var'; dr.nstatic = nstatic;