From 7a6b4f3464b26761a4eb007b9fb0b6463c2022f6 Mon Sep 17 00:00:00 2001 From: Marco Ratto Date: Mon, 13 Feb 2017 10:15:32 +0100 Subject: [PATCH] extra option about choosing the time periods for which to plot decompositions --- matlab/global_initialization.m | 2 ++ matlab/plot_shock_decomposition.m | 27 +++++++++++++++++++++++++-- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/matlab/global_initialization.m b/matlab/global_initialization.m index 8cdba9e59..9af259811 100644 --- a/matlab/global_initialization.m +++ b/matlab/global_initialization.m @@ -727,6 +727,8 @@ options_.shock_decomp.detail_plot=0; options_.shock_decomp.fig_names=''; options_.shock_decomp.init_state = 0; options_.shock_decomp.interactive = 0; +options_.shock_decomp.plot_end_date=[]; +options_.shock_decomp.plot_init_date=[]; options_.shock_decomp.screen_shocks=0; options_.shock_decomp.steadystate=0; options_.shock_decomp.type = ''; diff --git a/matlab/plot_shock_decomposition.m b/matlab/plot_shock_decomposition.m index fd0357b8d..070d00bf5 100644 --- a/matlab/plot_shock_decomposition.m +++ b/matlab/plot_shock_decomposition.m @@ -291,6 +291,15 @@ switch type initial_date = initial_date0; z=z(:,:,t0:4:end); end + + if ~isempty(options_.shock_decomp.plot_init_date) + options_.shock_decomp.plot_init_date = dates([int2str(options_.shock_decomp.plot_init_date.time(1)) 'Y']); + end + if ~isempty(options_.shock_decomp.plot_end_date) + options_.shock_decomp.plot_end_date = dates([int2str(options_.shock_decomp.plot_end_date.time(1)) 'Y']); + end + + otherwise error('plot_shock_decomposition:: Wrong type') @@ -306,11 +315,25 @@ if nargout return end +% here we crop data if needed +my_initial_date = initial_date; +a = 1; +b = size(z,3); +if ~isempty(options_.shock_decomp.plot_init_date) + my_initial_date = max(initial_date,options_.shock_decomp.plot_init_date); + a = find((initial_date:initial_date+b-1)==options_.shock_decomp.plot_init_date); +end +if ~isempty(options_.shock_decomp.plot_end_date) + b = find((initial_date:initial_date+b-1)==options_.shock_decomp.plot_end_date); +end +z = z(:,:,a:b); +% end crop data + options_.shock_decomp.fig_names=fig_names; if detail_plot, - graph_decomp_detail(z,shock_names,M_.endo_names,i_var,initial_date,M_,options_) + graph_decomp_detail(z,shock_names,M_.endo_names,i_var,my_initial_date,M_,options_) else - graph_decomp(z,shock_names,M_.endo_names,i_var,initial_date,M_,options_); + graph_decomp(z,shock_names,M_.endo_names,i_var,my_initial_date,M_,options_); end if write_xls