diff --git a/matlab/dynare_estimation_1.m b/matlab/dynare_estimation_1.m index 5fdec1d788152b71dbe714a28b8a1063489a39f8..bd7af83806d6347dfc96df827b254f9ffe48e688 100644 --- a/matlab/dynare_estimation_1.m +++ b/matlab/dynare_estimation_1.m @@ -67,6 +67,14 @@ end % Set the correlation matrix if necessary. if ~isequal(estim_params_.ncx,nnz(tril(M_.Sigma_e,-1))) M_.Correlation_matrix = diag(1./sqrt(diag(M_.Sigma_e)))*M_.Sigma_e*diag(1./sqrt(diag(M_.Sigma_e))); + % Remove NaNs appearing because of variances calibrated to zero. + if any(isnan(M_.Correlation_matrix)) + zero_variance_idx = find(~diag(M_.Sigma_e)); + for i=1:length(zero_variance_idx) + M_.Correlation_matrix(zero_variance_idx(i),:) = 0; + M_.Correlation_matrix(:,zero_variance_idx(i)) = 0; + end + end end data = dataset_.data;