readMixedData

PURPOSE ^

readMixedData Read floating point data with row identifiers (text) in the first n columns

SYNOPSIS ^

function [id,data,header] = readMixedData(file,n_header,n_labels,delimiter,verbose)

DESCRIPTION ^

readMixedData Read floating point data with row identifiers (text) in the first n columns 
 and m headerlines (text)

 [id,data,header] = readMixedData(file,n_header,n_labels,delimiter,verbose)

 file      Filename
 n_header  Number of header lines (default 0)
 n_labels  Number of label columns (default 1)
 delimiter Delimiter character (default tab)
 verbose   Print out the string to be evaluated for debugging (default 0)

 Markus Herrgard 2/9/05

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function [id,data,header] = readMixedData(file,n_header,n_labels,delimiter,verbose)
0002 %readMixedData Read floating point data with row identifiers (text) in the first n columns
0003 % and m headerlines (text)
0004 %
0005 % [id,data,header] = readMixedData(file,n_header,n_labels,delimiter,verbose)
0006 %
0007 % file      Filename
0008 % n_header  Number of header lines (default 0)
0009 % n_labels  Number of label columns (default 1)
0010 % delimiter Delimiter character (default tab)
0011 % verbose   Print out the string to be evaluated for debugging (default 0)
0012 %
0013 % Markus Herrgard 2/9/05
0014 
0015 % Set default
0016 if (nargin < 2)
0017     n_header = 0;
0018 end
0019 if (nargin <3)
0020     n_labels = 1;
0021 end
0022 if (nargin < 4)
0023     delimiter = '\t';
0024 end
0025 if (nargin < 5)
0026     verbose = 0;
0027 end
0028 
0029 % Figure out the # of columns
0030 fid = fopen(file,'r');
0031 line = fgetl(fid);
0032 tmp = splitString(line,delimiter);
0033 ncol = length(tmp);
0034 fclose(fid);
0035 
0036 % Process header lines
0037 if (n_header > 0)
0038     fid = fopen(file,'r');
0039     for i = 1:n_header
0040         line = fgetl(fid);
0041         header_tmp = splitString(line,delimiter);
0042         header{i} = header_tmp;
0043     end
0044     fclose(fid);
0045     if (n_header == 1)
0046         header = header_tmp;
0047     end
0048 else
0049     header = [];
0050 end
0051 
0052 % Create strings to be evaluated
0053 tr_lh_str = '[';
0054 tr_rh_str = [' = textread(''' file ''','''];
0055 data_str = ['data = ['];
0056 for i = 1:n_labels
0057     tr_lh_str = [tr_lh_str 'id' num2str(i)];
0058     tr_rh_str = [tr_rh_str ' %s'];
0059     if (i < n_labels)
0060         tr_lh_str = [tr_lh_str ','];
0061     end
0062 end
0063 for i = 1:ncol-n_labels
0064     tr_lh_str = [tr_lh_str ',d' num2str(i)];
0065     tr_rh_str = [tr_rh_str ' %f'];
0066     data_str = [data_str 'd' num2str(i) ' '];
0067 end
0068 tr_lh_str = [tr_lh_str ']'];
0069 tr_rh_str = [tr_rh_str ''',''delimiter'',''' delimiter ''''];
0070 if (n_header > 0)
0071     tr_rh_str = [tr_rh_str ',''headerlines'',' num2str(n_header) ');'];    
0072 else
0073     tr_rh_str = [tr_rh_str ');'];
0074 end
0075 data_str = [data_str '];'];
0076 
0077 % Display and evaluate strings
0078 if (verbose > 0)
0079     disp([tr_lh_str tr_rh_str])
0080     disp(data_str)
0081 end
0082 eval([tr_lh_str tr_rh_str]);
0083 eval(data_str);
0084 
0085 % Collect row labels
0086 for i = 1:n_labels
0087     eval(['id{i} = id' num2str(i) ';']);     
0088 end
0089 
0090 if (n_labels == 1)
0091     id = id1;
0092 elseif (n_labels == 0)
0093     id = [];
0094 end

Generated on Thu 21-Jun-2012 15:39:23 by m2html © 2003