diff --git a/matlab/ep/extended_path.m b/matlab/ep/extended_path.m index f8e1f852cf657c83ed950eab481854021d4d7e66..5205db59437fc295d95cf4146fb6aec724e42659 100644 --- a/matlab/ep/extended_path.m +++ b/matlab/ep/extended_path.m @@ -37,7 +37,8 @@ function [ts, DynareResults] = extended_path(initialconditions, samplesize, exog [initialconditions, innovations, pfm, ep, verbosity, DynareOptions] = ... extended_path_initialization(initialconditions, samplesize, exogenousvariables, DynareOptions, DynareModel, DynareResults); -[shocks, spfm_exo_simul, innovations, DynareResults] = extended_path_shocks(innovations, ep, exogenousvariables, samplesize, DynareResults); +[shocks, spfm_exo_simul, innovations, DynareResults] = ... + extended_path_shocks(innovations, ep, exogenousvariables, samplesize, DynareModel, DynareResults); % Initialize the matrix for the paths of the endogenous variables. endogenous_variables_paths = NaN(DynareModel.endo_nbr,samplesize+1); diff --git a/matlab/ep/extended_path_shocks.m b/matlab/ep/extended_path_shocks.m index ab0b8a18425915828659dcfe89d975508c9fba5f..878f93b0feb37dcea390860f8a8414086191f0b6 100644 --- a/matlab/ep/extended_path_shocks.m +++ b/matlab/ep/extended_path_shocks.m @@ -1,4 +1,5 @@ -function [shocks, spfm_exo_simul, innovations, DynareResults] = extended_path_shocks(innovations, ep, exogenousvariables, sample_size, DynareResults); +function [shocks, spfm_exo_simul, innovations, DynareResults] = ... + extended_path_shocks(innovations, ep, exogenousvariables, sample_size, DynareModel, DynareResults); % Copyright (C) 2016 Dynare Team % @@ -23,6 +24,11 @@ if isempty(exogenousvariables) case 'gaussian' shocks = transpose(transpose(innovations.covariance_matrix_upper_cholesky)*randn(innovations.effective_number_of_shocks,sample_size)); shocks(:,innovations.positive_var_indx) = shocks; + case 'calibrated' + options.periods = sample_size; + DynareResults = make_ex_(DynareModel,options,DynareResults); + shocks = DynareResults.exo_simul(2:end,:); + innovations.positive_var_indx = find(sum(abs(shocks)>0)); otherwise error(['extended_path:: ' ep.innovation_distribution ' distribution for the structural innovations is not (yet) implemented!']) end