0001 function [id,data,header] = readMixedData(file,n_header,n_labels,delimiter,verbose)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
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
0030 fid = fopen(file,'r');
0031 line = fgetl(fid);
0032 tmp = splitString(line,delimiter);
0033 ncol = length(tmp);
0034 fclose(fid);
0035
0036
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
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
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
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