diff --git a/matlab/set_state_space.m b/matlab/set_state_space.m index 1f32512e2dca38411ad74059195348b4ed638a0d..00fa0d66f2672c4a75bf4c8c3441c14cffc38438 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;