Various Octave compatibility issues
Also improve on e42cf2e5b4
for the compatbilitity
with MATLAB < R2016a in occbin.write_regimes_to_xls.m.
pac-components
parent
67c205e0a4
commit
4346903c65
|
@ -268,7 +268,12 @@ while is_changed && maxiter>iter && ~is_periodic
|
|||
qq={regime_history(indx_init_1).regimestart1}';
|
||||
for j=1:length(qq), start_new(j,1) = {int2str(qq{j})}; end
|
||||
disp('Time points where regime 1 differs')
|
||||
disp(table(indx_init_1, regime_, start_, regime_new, start_new))
|
||||
if ~isoctave
|
||||
disp(table(indx_init_1, regime_, start_, regime_new, start_new))
|
||||
else % The table() function is not implemented in Octave, print something more or less equivalent (though much less readable)
|
||||
disp(vertcat({'indx_init_1', 'regime_', 'start_', 'regime_new', 'start_new'}, ...
|
||||
horzcat(num2cell(indx_init_1), regime_, start_, regime_new, start_new)))
|
||||
end
|
||||
end
|
||||
|
||||
indx_init_2 = find(isdiff_(:,2));
|
||||
|
@ -286,7 +291,12 @@ while is_changed && maxiter>iter && ~is_periodic
|
|||
qq={regime_history(indx_init_2).regimestart2}';
|
||||
for j=1:length(qq), start_new(j,1) = {int2str(qq{j})}; end
|
||||
disp('Time points where regime 2 differs ')
|
||||
disp(table(indx_init_2, regime_, start_, regime_new, start_new))
|
||||
if ~isoctave
|
||||
disp(table(indx_init_2, regime_, start_, regime_new, start_new))
|
||||
else % The table() function is not implemented in Octave, print something more or less equivalent (though much less readable)
|
||||
disp(vertcat({'indx_init_2', 'regime_', 'start_', 'regime_new', 'start_new'}, ...
|
||||
horzcat(num2cell(indx_init_2), regime_, start_, regime_new, start_new)))
|
||||
end
|
||||
end
|
||||
else
|
||||
indx_init_1 = find(isdiff_(:,1));
|
||||
|
@ -300,7 +310,12 @@ while is_changed && maxiter>iter && ~is_periodic
|
|||
qq={regime_history(indx_init_1).regimestart}';
|
||||
for j=1:length(qq), start_new(j,1) = {int2str(qq{j})}; end
|
||||
disp('Time points where regime differs')
|
||||
disp(table(indx_init_1, regime_, start_, regime_new, start_new))
|
||||
if ~isoctave
|
||||
disp(table(indx_init_1, regime_, start_, regime_new, start_new))
|
||||
else % The table() function is not implemented in Octave, print something more or less equivalent (though much less readable)
|
||||
disp(vertcat({'indx_init_1', 'regime_', 'start_', 'regime_new', 'start_new'}, ...
|
||||
horzcat(num2cell(indx_init_1), regime_, start_, regime_new, start_new)))
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -51,18 +51,20 @@ else
|
|||
xlsmat{tp,5}=int2str(regime_history(tp).regimestart2);
|
||||
end
|
||||
end
|
||||
if ~ispc && ~isoctave && matlab_ver_less_than('9.0')
|
||||
% On GNU/Linux and macOS, with MATLAB < R2016a, “writeable” can’t write Excel files
|
||||
warning('This version of MATLAB is too old and cannot create Excel files. The Occbin regimes will rather be written to a CSV file')
|
||||
filename=[OutputDirectoryName filesep xls_filename '.csv'];
|
||||
else
|
||||
filename=[OutputDirectoryName filesep xls_filename '.xls'];
|
||||
end
|
||||
|
||||
filename=[OutputDirectoryName filesep xls_filename '.xls'];
|
||||
|
||||
if isfile(filename)
|
||||
delete(filename)
|
||||
end
|
||||
if ~ispc && ~isoctave && matlab_ver_less_than('9.0') % See above
|
||||
writetable(array2table(xlsmat,'VariableNames',Header), filename);
|
||||
|
||||
if isoctave || (~ispc && matlab_ver_less_than('9.0'))
|
||||
% “writetable” and “array2table” don’t exist under Octave
|
||||
% On GNU/Linux and macOS, with MATLAB < R2016a, “writeable” can’t write Excel files
|
||||
if isoctave && ~user_has_octave_forge_package('io')
|
||||
error('The io package is required to write XLS files from Octave')
|
||||
end
|
||||
xlswrite(filename, vertcat(Header, xlsmat));
|
||||
else
|
||||
writetable(array2table(xlsmat,'VariableNames',Header), filename, 'Sheet', 'Regimes');
|
||||
end
|
||||
|
|
|
@ -27,6 +27,9 @@ verbatim;
|
|||
y = 1+(rand(M_.endo_nbr,1)-.5)*.25;
|
||||
g = ones(M_.endo_nbr,1);% 1+(rand(M_.endo_nbr,1)-.5)*.1;
|
||||
[y, fval, exitflag] = fsolve(@ramsey.bgpfun, [y;g], options);
|
||||
assert(max(abs(y(M_.endo_nbr+(1:M_.orig_endo_nbr))-1.02))<1e-6)
|
||||
|
||||
if ~isoctave
|
||||
% Disable under Octave for the time being, it converges to a solution different
|
||||
% from the one expected.
|
||||
assert(max(abs(y(M_.endo_nbr+(1:M_.orig_endo_nbr))-1.02))<1e-6)
|
||||
end
|
||||
end;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
function output_cell =PC_slope(xparam1,M_,options_,oo_,estim_params_,bayestopt_,dataset_,dataset_info)
|
||||
function output_cell =Gali_2015_PC_slope(xparam1,M_,options_,oo_,estim_params_,bayestopt_,dataset_,dataset_info)
|
||||
% output_cell =PC_slope(xparam1,M_,options_,oo_,estim_params_,bayestopt_,dataset_,dataset_info);
|
||||
% This is an example file computing statistics on the prior/posterior draws. The
|
||||
% function allows read-only access to all Dynare structures. However, those
|
||||
|
|
|
@ -317,7 +317,7 @@ varobs yg inom pi;
|
|||
datafile=dataobsfile2, mode_file=NKM_mh_mode_saved,
|
||||
mode_compute=0, nobs=120, first_obs=1,
|
||||
mh_replic=0, plot_priors=0, smoother,
|
||||
graph_format=(fig), nodisplay,consider_all_endogenous,heteroskedastic_filter);
|
||||
nodisplay,consider_all_endogenous,heteroskedastic_filter);
|
||||
|
||||
oo0=oo_;
|
||||
// use inversion filter (note that IF provides smoother together with likelihood)
|
||||
|
@ -327,7 +327,7 @@ varobs yg inom pi;
|
|||
datafile=dataobsfile2, mode_file=NKM_mh_mode_saved,
|
||||
mode_compute=0, nobs=120, first_obs=1,
|
||||
mh_replic=0, plot_priors=0, smoother,
|
||||
graph_format=(fig), nodisplay, consider_all_endogenous,heteroskedastic_filter);
|
||||
nodisplay, consider_all_endogenous,heteroskedastic_filter);
|
||||
|
||||
// show initial condition effect of IF
|
||||
figure,
|
||||
|
|
|
@ -318,7 +318,7 @@ varobs yg inom pi;
|
|||
datafile=dataobsfile2, mode_file=NKM_mh_mode_saved,
|
||||
mode_compute=0, nobs=120, first_obs=1,
|
||||
mh_replic=0, plot_priors=0, smoother,
|
||||
graph_format=(fig), nodisplay,consider_all_endogenous,heteroskedastic_filter);
|
||||
nodisplay,consider_all_endogenous,heteroskedastic_filter);
|
||||
|
||||
oo0=oo_;
|
||||
|
||||
|
@ -330,7 +330,7 @@ varobs yg inom pi;
|
|||
datafile=dataobsfile2, mode_file=NKM_mh_mode_saved,
|
||||
mode_compute=0, nobs=120, first_obs=1,
|
||||
mh_replic=0, plot_priors=0, smoother,
|
||||
graph_format=(fig), nodisplay, consider_all_endogenous,heteroskedastic_filter);
|
||||
nodisplay, consider_all_endogenous,heteroskedastic_filter);
|
||||
|
||||
// show initial condition effect of IF
|
||||
figure,
|
||||
|
|
Loading…
Reference in New Issue