Hi, I may have found an error in the function evaluate_smoother.m, which is called by shock_decomposition.m. Lines 146-147 of evaluate_smoother.m are
[atT,innov,measurement_error,updated_variables,ys,trend_coeff,aK,T,R,P,PK,decomp] ...
= DsgeSmoother(parameters,gend,data,data_index,number_of_observations);
I think the last argument is wrong and instead should be missing_value (0/1 dummy for whether data has missing observations) instead of number_of_observations. That is the code should be
[atT,innov,measurement_error,updated_variables,ys,trend_coeff,aK,T,R,P,PK,decomp] ...
= DsgeSmoother(parameters,gend,data,data_index,missing_value);
dynare_estimation_1 calls DsgeSmoother several times as well and the last argument is missing_value. DsgeSmoother.m also looks like it expects missing_value as its last argument. Thanks a lot.
-Pat