From 82a59bec79e31eaab8bb1634b538f5bff98df02d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Villemot?= Date: Thu, 20 Jan 2011 15:56:26 -0500 Subject: [PATCH] Dynare++ MATLAB simulation helper: fixed commit 92cb073f3af0931ad9919a6627f2d9aeef6440e2 --- dynare++/extern/matlab/dynare_simul.m | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/dynare++/extern/matlab/dynare_simul.m b/dynare++/extern/matlab/dynare_simul.m index 0ce4dae0b..6d49159e1 100644 --- a/dynare++/extern/matlab/dynare_simul.m +++ b/dynare++/extern/matlab/dynare_simul.m @@ -1,10 +1,10 @@ % % SYNOPSIS % -% [err, r] = dynare_simul(name, shocks) -% [err, r] = dynare_simul(name, prefix, shocks) -% [err, r] = dynare_simul(name, shocks, start) -% [err, r] = dynare_simul(name, prefix, shocks, start) +% r = dynare_simul(name, shocks) +% r = dynare_simul(name, prefix, shocks) +% r = dynare_simul(name, shocks, start) +% r = dynare_simul(name, prefix, shocks, start) % % name name of MAT-file produced by dynare++ % prefix prefix of variables in the MAT-file @@ -43,30 +43,28 @@ % % shocks = zeros(4,100); % 4 exogenous variables in the model % shocks(dyn_i_EPS3,:) = -0.1; % the permanent shock to EPS3 -% [err, r] = dynare_simul('your_model.mat',shocks); +% r = dynare_simul('your_model.mat',shocks); % % 2. one stochastic simulation for 100 periods % % shocks = zeros(4,100)./0; % put NaNs everywhere -% [err, r] = dynare_simul('your_model.mat',shocks); +% r = dynare_simul('your_model.mat',shocks); % % 3. one stochastic simulation starting at 75% undercapitalized economy % % shocks = zeros(4,100)./0; % put NaNs everywhere % ystart = dyn_ss; % get copy of DR fix point % ystart(dyn_i_K) = 0.75*dyn_ss(dyn_i_K); % scale down the capital -% [err, r] = dynare_simul('your_model.mat',shocks,ystart); +% r = dynare_simul('your_model.mat',shocks,ystart); % % % SEE ALSO % % "DSGE Models with Dynare++. A Tutorial.", Ondra Kamenik, 2005 -function [err, r] = dynare_simul(varargin) +% Copyright (C) 2005-2011, Ondra Kamenik -if nargout ~= 2 || nargin < 12 - error('dynare_simul_ must have at least 12 input parameters and exactly 2 output arguments.'); -end +function r = dynare_simul(varargin) % get the file name and load data fname = varargin{1}; @@ -159,7 +157,10 @@ end seed = ceil(10000*rand(1,1)); % call dynare_simul_ -command = ['r=dynare_simul_(' num2str(order-1) ',nstat,npred,nboth,nforw,' ... +command = ['[err,r]=dynare_simul_(' num2str(order-1) ',nstat,npred,nboth,nforw,' ... 'nexog,ystart,shocks,vcov_exo,seed,ss' derstr ');']; eval(command); -err = 0; + +if err + error('Simulation failed') +end