diff --git a/matlab/compute_Pinf_Pstar.m b/matlab/compute_Pinf_Pstar.m index 4d6d2070e651ba964b5710d2f0ad0045b6b1969d..90da303d6442638cacaeff884538705a4d4dc221 100644 --- a/matlab/compute_Pinf_Pstar.m +++ b/matlab/compute_Pinf_Pstar.m @@ -48,6 +48,16 @@ function [Pstar,Pinf] = compute_Pinf_Pstar(mf,T,R,Q,qz_criterium, restrict_colum % along with Dynare. If not, see <https://www.gnu.org/licenses/>. np = size(T,1); +if iszero(Q) + % this may happen if users set Q=0 and use heteroskedastic shocks to set + % variances period by period + % this in practice triggers a form of conditional filter where states + % are initialized at st. state with zero variances + Pstar=T*0; + Pinf=T*0; + return +end + if nargin == 6 indx = restrict_columns; indx0=find(~ismember([1:np],indx));