From a4e6531420c7f41168eae99b6b924cfc9640e7ef Mon Sep 17 00:00:00 2001
From: Marco Ratto <marco.ratto@ec.europa.eu>
Date: Thu, 21 Dec 2023 11:14:49 +0100
Subject: [PATCH] check existence of oo_.initval_decomposition and, if absent,
 compute it

Closes: #1913
---
 matlab/shock_decomposition/plot_shock_decomposition.m | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/matlab/shock_decomposition/plot_shock_decomposition.m b/matlab/shock_decomposition/plot_shock_decomposition.m
index 640f623f6a..04649bbb6e 100644
--- a/matlab/shock_decomposition/plot_shock_decomposition.m
+++ b/matlab/shock_decomposition/plot_shock_decomposition.m
@@ -249,6 +249,15 @@ end
 
 
 if ~isempty(init2shocks) && ~expand
+    if not(isfield(oo_,'initval_decomposition'))
+        disp('computing initval shock decomposition ...')
+        bayestopt_ = evalin('base','bayestopt_');
+        estim_params_ = evalin('base','estim_params_');
+        M_= evalin('base','M_');
+        options_ = set_default_initial_condition_decomposition_options(options_);
+        oo_ = initial_condition_decomposition(M_,oo_,options_,0,bayestopt_,estim_params_);
+        out = oo_;
+    end
     n=size(init2shocks,1);
     M_.exo_names_init=M_.exo_names;
     for i=1:n
-- 
GitLab