v4: modifying data handling

git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@626 ac1d8469-bf42-47a9-8791-bf33cf982152
time-shift
michel 2006-02-14 10:35:34 +00:00
parent fc0ae0aefa
commit 158b4b13d2
3 changed files with 45 additions and 8 deletions

View File

@ -55,6 +55,8 @@ options_ = set_default_option(options_,'kalman_algo',1);
options_ = set_default_option(options_,'kalman_tol',10^(-12));
options_ = set_default_option(options_,'posterior_mode_estimation',1);
options_ = set_default_option(options_,'MaxNumberOfBytes',1e6);
options_ = set_default_option(options_,'xls_sheet','');
options_ = set_default_option(options_,'xls_range','');
%% Add something to the parser ++>
M_.dname = M_.fname; % The user should be able to choose another name
@ -175,17 +177,11 @@ k = find(isnan(bayestopt_.jscale));
bayestopt_.jscale(k) = options_.mh_jscale;
%% Read and demean data
if exist(options_.datafile)
instr = options_.datafile;
else
instr = ['load ' options_.datafile];
end
eval(instr);
rawdata = [];
rawdata = read_variables(options_.datafile,options_.varobs,[],options_.xls_sheet,options_.xls_range);
k = [];
k1 = [];
for i=1:n_varobs
rawdata = [rawdata eval(deblank(options_.varobs(i,:)))];
k = [k strmatch(deblank(options_.varobs(i,:)),M_.endo_names(dr.order_var,:), ...
'exact')];
k1 = [k1 strmatch(deblank(options_.varobs(i,:)),M_.endo_names, 'exact')];

Binary file not shown.

41
matlab/read_variables.m Normal file
View File

@ -0,0 +1,41 @@
% Copyright (C) 2005 Michel Juillard
%
% all local variables have complicated names in order to avoid name
% conflicts with possible user variable names
function dyn_data_01=read_variables(file_name_01,var_names_01,dyn_data_01,xls_sheet,xls_range)
dyn_size_01 = size(dyn_data_01,1);
var_size_01 = size(var_names_01,1);
if exist(file_name_01)
dyn_instr_01 = file_name_01;
eval(dyn_instr_01);
for dyn_i_01=1:var_size_01
dyn_tmp_01 = eval(var_names_01(dyn_i_01,:));
if length(dyn_tmp_01) > dyn_size_01 & dyn_size_01 > 0
error('data size is too large')
end
dyn_data_01(:,dyn_i_01) = dyn_tmp_01;
end
elseif exist([file_name_01 '.mat'])
s = load(file_name_01);
for dyn_i_01=1:var_size_01
dyn_tmp_01 = s.(var_names_01(dyn_i_01,:));
if length(dyn_tmp_01) > dyn_size_01 & dyn_size_01 > 0
error('data size is too large')
end
dyn_data_01(:,dyn_i_01) = dyn_tmp_01;
end
elseif exist([file_name_01 '.xls'])
[num,txt,raw] = xlsread(file_name_01,xls_sheet,xls_range);
for dyn_i_01=1:var_size_01
iv = strmatch(var_names_01(dyn_i_01,:),raw(1,:),'exact');
dyn_tmp_01 = [raw{2:end,iv}]';
if length(dyn_tmp_01) > dyn_size_01 & dyn_size_01 > 0
error('data size is too large')
end
dyn_data_01(:,dyn_i_01) = dyn_tmp_01;
end
end