Home > . > read_variables.m

read_variables

PURPOSE ^

Copyright (C) 2005 Michel Juillard

SYNOPSIS ^

function dyn_data_01=read_variables(file_name_01,var_names_01,dyn_data_01,xls_sheet,xls_range)

DESCRIPTION ^

 Copyright (C) 2005 Michel Juillard

 all local variables have complicated names in order to avoid name
 conflicts with possible user variable names

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 % Copyright (C) 2005 Michel Juillard
0002 %
0003 % all local variables have complicated names in order to avoid name
0004 % conflicts with possible user variable names
0005 
0006 function dyn_data_01=read_variables(file_name_01,var_names_01,dyn_data_01,xls_sheet,xls_range)
0007   
0008   dyn_size_01 = size(dyn_data_01,1);
0009   var_size_01 = size(var_names_01,1);
0010   if exist(file_name_01)
0011     file_name_02 = [file_name_01 '.m'];
0012     dyn_instr_01 = file_name_01;
0013     eval(dyn_instr_01);
0014     for dyn_i_01=1:var_size_01
0015       dyn_tmp_01 = eval(var_names_01(dyn_i_01,:));
0016       if length(dyn_tmp_01) > dyn_size_01 & dyn_size_01 > 0
0017     error('data size is too large')
0018       end
0019       dyn_data_01(:,dyn_i_01) = dyn_tmp_01;
0020     end
0021   elseif exist([file_name_01 '.mat'])
0022     file_name_02 = [file_name_01 '.mat']
0023     s = load(file_name_01);
0024     for dyn_i_01=1:var_size_01
0025       dyn_tmp_01 = s.(deblank(var_names_01(dyn_i_01,:)));
0026       if length(dyn_tmp_01) > dyn_size_01 & dyn_size_01 > 0
0027     error('data size is too large')
0028       end
0029       dyn_data_01(:,dyn_i_01) = dyn_tmp_01;
0030     end
0031   elseif exist([file_name_01 '.xls'])
0032     file_name_02 = [file_name_01 '.xls']
0033     [num,txt,raw] = xlsread(file_name_01,xls_sheet,xls_range);
0034     for dyn_i_01=1:var_size_01
0035       iv = strmatch(var_names_01(dyn_i_01,:),raw(1,:),'exact');
0036       dyn_tmp_01 = [raw{2:end,iv}]';
0037       if length(dyn_tmp_01) > dyn_size_01 & dyn_size_01 > 0
0038     error('data size is too large')
0039       end
0040       dyn_data_01(:,dyn_i_01) = dyn_tmp_01;
0041     end
0042     
0043   end
0044   disp(sprintf('Loading %d observations from %s\n',...
0045            size(dyn_data_01,1),file_name_02))

Generated on Fri 16-Jun-2006 09:09:06 by m2html © 2003