From b907e82e7bbfc975d3e961ff4d41c91b12529608 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Adjemian=20=28Charybdis=29?=
 <stephane.adjemian@univ-lemans.fr>
Date: Thu, 14 Jun 2012 14:39:47 +0200
Subject: [PATCH] Removed NaNs in M_.Correlation_matrix if they are the
 consequence of variances (of structural innovations) calibrated to zero.

---
 matlab/dynare_estimation_1.m | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/matlab/dynare_estimation_1.m b/matlab/dynare_estimation_1.m
index 5fdec1d78..bd7af8380 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;
-- 
GitLab