From c373ed3897e036e586d258d480ef992bd621634f Mon Sep 17 00:00:00 2001 From: Johannes Pfeifer <jpfeifer@gmx.de> Date: Sun, 14 May 2017 11:03:05 +0200 Subject: [PATCH] Make sure varlists are correctly updated after removal of doubly defined variables via varlist_indices.m Otherwise the mapping between i_var and varlist does not match anymore (results in e.g. wrong display of IRFs) --- matlab/check_list_of_variables.m | 4 ++-- matlab/initial_condition_decomposition.m | 3 ++- matlab/plot_shock_decomposition.m | 3 ++- matlab/realtime_shock_decomposition.m | 3 ++- matlab/shock_decomposition.m | 3 ++- matlab/stoch_simul.m | 3 ++- matlab/varlist_indices.m | 2 +- 7 files changed, 13 insertions(+), 8 deletions(-) diff --git a/matlab/check_list_of_variables.m b/matlab/check_list_of_variables.m index e9fb3be3b..ab1e8cde0 100644 --- a/matlab/check_list_of_variables.m +++ b/matlab/check_list_of_variables.m @@ -33,8 +33,8 @@ function varlist = check_list_of_variables(options_, M_, varlist) %get uniques -[junk1,junk2,index_uniqes] = varlist_indices(varlist,M_.endo_names); -varlist=varlist(index_uniqes,:); +[junk1,junk2,index_uniques] = varlist_indices(varlist,M_.endo_names); +varlist=varlist(index_uniques,:); msg = 0; if options_.dsge_var && options_.bayesian_irf diff --git a/matlab/initial_condition_decomposition.m b/matlab/initial_condition_decomposition.m index 1eb2b7959..7e2f0ae2c 100644 --- a/matlab/initial_condition_decomposition.m +++ b/matlab/initial_condition_decomposition.m @@ -50,7 +50,8 @@ if size(varlist,1) == 0 varlist = M_.endo_names(1:M_.orig_endo_nbr,:); end -[i_var,nvar] = varlist_indices(varlist,M_.endo_names); +[i_var,nvar,index_uniques] = varlist_indices(varlist,M_.endo_names); +varlist=varlist(index_uniques,:); % number of variables endo_nbr = M_.endo_nbr; diff --git a/matlab/plot_shock_decomposition.m b/matlab/plot_shock_decomposition.m index 15c97506a..698192a91 100644 --- a/matlab/plot_shock_decomposition.m +++ b/matlab/plot_shock_decomposition.m @@ -38,7 +38,8 @@ if size(varlist,1) == 0 varlist = M_.endo_names(1:M_.orig_endo_nbr,:); end -[i_var,nvar] = varlist_indices(varlist,M_.endo_names); +[i_var,nvar,index_uniques] = varlist_indices(varlist,M_.endo_names); +varlist=varlist(index_uniques,:); % number of variables endo_nbr = M_.endo_nbr; diff --git a/matlab/realtime_shock_decomposition.m b/matlab/realtime_shock_decomposition.m index 2e47066e1..2cdb6d949 100644 --- a/matlab/realtime_shock_decomposition.m +++ b/matlab/realtime_shock_decomposition.m @@ -44,7 +44,8 @@ if size(varlist,1) == 0 varlist = M_.endo_names(1:M_.orig_endo_nbr,:); end -[i_var,nvar] = varlist_indices(varlist,M_.endo_names); +[i_var,nvar,index_uniques] = varlist_indices(varlist,M_.endo_names); +varlist=varlist(index_uniques,:); % number of variables endo_nbr = M_.endo_nbr; diff --git a/matlab/shock_decomposition.m b/matlab/shock_decomposition.m index 9c5144110..89f3c431b 100644 --- a/matlab/shock_decomposition.m +++ b/matlab/shock_decomposition.m @@ -45,7 +45,8 @@ if size(varlist,1) == 0 varlist = M_.endo_names(1:M_.orig_endo_nbr,:); end -[i_var,nvar] = varlist_indices(varlist,M_.endo_names); +[i_var,nvar,index_uniques] = varlist_indices(varlist,M_.endo_names); +varlist=varlist(index_uniques,:); % number of variables endo_nbr = M_.endo_nbr; diff --git a/matlab/stoch_simul.m b/matlab/stoch_simul.m index d187a45a5..5465eaa96 100644 --- a/matlab/stoch_simul.m +++ b/matlab/stoch_simul.m @@ -56,7 +56,8 @@ if size(var_list,1) == 0 var_list = M_.endo_names(1:M_.orig_endo_nbr, :); end -[i_var,nvar] = varlist_indices(var_list,M_.endo_names); +[i_var,nvar,index_uniques] = varlist_indices(var_list,M_.endo_names); +var_list=var_list(index_uniques,:); iter_ = max(options_.periods,1); if M_.exo_nbr > 0 diff --git a/matlab/varlist_indices.m b/matlab/varlist_indices.m index 1299e54d5..5d593c006 100644 --- a/matlab/varlist_indices.m +++ b/matlab/varlist_indices.m @@ -1,5 +1,5 @@ function [i_var,nvar,index_uniques] = varlist_indices(sublist,list) -% function [i_var,nvar] = varlist_indices(sublist,list) +% function [i_var,nvar,index_uniques] = varlist_indices(sublist,list) % returns the indices of a list of endogenous variables % % INPUT -- GitLab