0001 function dyn_data_01=read_variables(file_name_01,var_names_01,dyn_data_01,xls_sheet,xls_range)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038 old_pwd = pwd;
0039 [path_name_02,file_name_02,ext_name_02] = fileparts(file_name_01);
0040 if ~isempty(path_name_02)
0041 file_name_01 = [file_name_02, ext_name_02];
0042 cd(path_name_02)
0043 end
0044
0045 dyn_size_01 = size(dyn_data_01,1);
0046 var_size_01 = size(var_names_01,1);
0047 if exist([file_name_01 '.m'],'file')
0048 file_name_02 = [file_name_01 '.m'];
0049 dyn_instr_01 = file_name_01;
0050 eval(dyn_instr_01);
0051 for dyn_i_01=1:var_size_01
0052 dyn_tmp_01 = eval(var_names_01(dyn_i_01,:));
0053 if length(dyn_tmp_01) > dyn_size_01 && dyn_size_01 > 0
0054 cd(old_pwd)
0055 error('data size is too large')
0056 end
0057 dyn_data_01(:,dyn_i_01) = dyn_tmp_01;
0058 end
0059 elseif exist([file_name_01 '.mat'],'file')
0060 file_name_02 = [file_name_01 '.mat'];
0061 s = load(file_name_01);
0062 for dyn_i_01=1:var_size_01
0063 dyn_tmp_01 = s.(deblank(var_names_01(dyn_i_01,:)));
0064 if length(dyn_tmp_01) > dyn_size_01 && dyn_size_01 > 0
0065 cd(old_pwd)
0066 error('data size is too large')
0067 end
0068 dyn_data_01(:,dyn_i_01) = dyn_tmp_01;
0069 end
0070 elseif exist([file_name_01 '.xls'],'file')
0071 file_name_02 = [file_name_01 '.xls'];
0072 [num,txt,raw] = xlsread(file_name_01,xls_sheet,xls_range);
0073 for dyn_i_01=1:var_size_01
0074 iv = strmatch(var_names_01(dyn_i_01,:),raw(1,:),'exact');
0075 dyn_tmp_01 = [raw{2:end,iv}]';
0076 if length(dyn_tmp_01) > dyn_size_01 && dyn_size_01 > 0
0077 cd(old_pwd)
0078 error('data size is too large')
0079 end
0080 dyn_data_01(:,dyn_i_01) = dyn_tmp_01;
0081 end
0082 else
0083 cd(old_pwd)
0084 error(['Can''t find datafile: ' file_name_01 ]);
0085 end
0086 cd(old_pwd)
0087 disp(sprintf('Loading %d observations from %s\n',...
0088 size(dyn_data_01,1),file_name_02))