diff --git a/matlab/dynare_estimation_init.m b/matlab/dynare_estimation_init.m index 954071cfb57a459534be570daf9135b042ff59c2..9810e0ec257c01c9dba94ccbb6eab7a597f9b264 100644 --- a/matlab/dynare_estimation_init.m +++ b/matlab/dynare_estimation_init.m @@ -138,9 +138,12 @@ if ~isempty(estim_params_) % Test if initial values of the estimated parameters are all between % the prior lower and upper bounds. if any(xparam1 < bounds(:,1)) || any(xparam1 > bounds(:,2)) - find(xparam1 < bounds(:,1)) - find(xparam1 > bounds(:,2)) - error('Initial parameter values are outside parameter bounds') + outside_bound_vars=bayestopt_.name([find(xparam1 < bounds(:,1)); find(xparam1 > bounds(:,2))],:); + disp_string=[outside_bound_vars{1,:}]; + for ii=2:size(outside_bound_vars,1) + disp_string=[disp_string,', ',outside_bound_vars{ii,:}]; + end + error(['Initial value(s) of ', disp_string ,' are outside parameter bounds. Potentially, you should set prior_trunc=0.']) end lb = bounds(:,1); ub = bounds(:,2);