From 5a3ae27b135bf67bdba58a5f54096228fe80560d Mon Sep 17 00:00:00 2001 From: Johannes Pfeifer <jpfeifer@gmx.de> Date: Sat, 7 Oct 2023 14:21:20 +0200 Subject: [PATCH] set_all_parameters.m: only operate on covariance matrices if necessary --- matlab/set_all_parameters.m | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/matlab/set_all_parameters.m b/matlab/set_all_parameters.m index df515e31fd..a69e95d53d 100644 --- a/matlab/set_all_parameters.m +++ b/matlab/set_all_parameters.m @@ -55,8 +55,10 @@ ncx = estim_params.ncx; nvn = estim_params.nvn; ncn = estim_params.ncn; np = estim_params.np; -Sigma_e = M.Sigma_e; -Correlation_matrix = M.Correlation_matrix; +if nvx || ncx + Sigma_e = M.Sigma_e; + Correlation_matrix = M.Correlation_matrix; +end H = M.H; Correlation_matrix_ME = M.Correlation_matrix_ME; % setting shocks variance on the diagonal of Covariance matrix; used later @@ -93,13 +95,6 @@ if ncx Correlation_matrix(k2,k1) = Correlation_matrix(k1,k2); end end -%build covariance matrix from correlation matrix and variances already on -%diagonal -Sigma_e = diag(sqrt(diag(Sigma_e)))*Correlation_matrix*diag(sqrt(diag(Sigma_e))); -%if calibrated covariances, set them now to their stored value -if isfield(estim_params,'calibrated_covariances') - Sigma_e(estim_params.calibrated_covariances.position)=estim_params.calibrated_covariances.cov_value; -end % update offset offset = nvx+nvn+ncx; @@ -113,13 +108,6 @@ if ncn Correlation_matrix_ME(k2,k1) = Correlation_matrix_ME(k1,k2); end end -%build covariance matrix from correlation matrix and variances already on -%diagonal -H = diag(sqrt(diag(H)))*Correlation_matrix_ME*diag(sqrt(diag(H))); -%if calibrated covariances, set them now to their stored value -if isfield(estim_params,'calibrated_covariances_ME') - H(estim_params.calibrated_covariances_ME.position)=estim_params.calibrated_covariances_ME.cov_value; -end % update offset offset = nvx+ncx+nvn+ncn; @@ -131,10 +119,24 @@ end % updating matrices in M if nvx || ncx + %build covariance matrix from correlation matrix and variances already on + %diagonal + Sigma_e = diag(sqrt(diag(Sigma_e)))*Correlation_matrix*diag(sqrt(diag(Sigma_e))); + %if calibrated covariances, set them now to their stored value + if isfield(estim_params,'calibrated_covariances') + Sigma_e(estim_params.calibrated_covariances.position)=estim_params.calibrated_covariances.cov_value; + end M.Sigma_e = Sigma_e; M.Correlation_matrix=Correlation_matrix; end if nvn || ncn + %build covariance matrix from correlation matrix and variances already on + %diagonal + H = diag(sqrt(diag(H)))*Correlation_matrix_ME*diag(sqrt(diag(H))); + %if calibrated covariances, set them now to their stored value + if isfield(estim_params,'calibrated_covariances_ME') + H(estim_params.calibrated_covariances_ME.position)=estim_params.calibrated_covariances_ME.cov_value; + end M.H = H; M.Correlation_matrix_ME=Correlation_matrix_ME; end \ No newline at end of file -- GitLab