0001 function printLabeledData(labels,data,nonzeroFlag,sortCol,fileName,headerRow,sortMode)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 tol = 1e-9;
0018 format = '%g\t';
0019
0020 [n,m] = size(data);
0021
0022 if (nargin < 3)
0023 nonzeroFlag = false;
0024 end
0025 if (nargin < 4)
0026 sortCol = -1;
0027 end
0028 if (nargin < 5)
0029 printToFileFlag = false;
0030 else
0031 if (isempty(fileName))
0032 printToFileFlag = false;
0033 else
0034 printToFileFlag = true;
0035 end
0036 end
0037 if (nargin < 6)
0038 printHeaderFlag = false;
0039 else
0040 if (isempty(headerRow))
0041 printHeaderFlag = false;
0042 else
0043 printHeaderFlag = true;
0044 end
0045 end
0046 if (nargin < 7)
0047 sortMode = 'ascend';
0048 end
0049
0050 if (printToFileFlag)
0051 if (~isempty(fileName))
0052 fid = fopen(fileName,'w');
0053 end
0054 else
0055 fid = 1;
0056 end
0057
0058 if (printHeaderFlag)
0059 for i = 1:length(headerRow)
0060 fprintf(fid,[headerRow{i} '\t']);
0061 end
0062 fprintf(fid,'\n');
0063 end
0064
0065 if (sortCol == 0)
0066 [tmp,sortInd] = sort(labels(:,1),1,sortMode);
0067 labels = labels(sortInd,:);
0068 data = data(sortInd,:);
0069 elseif (sortCol > 0)
0070 [tmp,sortInd] = sort(data(:,sortCol),1,sortMode);
0071 data = data(sortInd,:);
0072 labels = labels(sortInd,:);
0073 end
0074
0075 [n,nLab] = size(labels);
0076
0077 for i = 1:n
0078 if ~(nonzeroFlag & ((sum(abs(data(i,:))) < tol) | all(isnan(data(i,:)))))
0079 for j = 1:nLab
0080 fprintf(fid,'%-s\t',labels{i,j});
0081 end
0082 for j = 1:m
0083 if (~isnan(data(i,j)))
0084 fprintf(fid,format,data(i,j));
0085 else
0086 fprintf(fid,'%-10s\t','NA');
0087 end
0088 end
0089 fprintf(fid,'\n');
0090 end
0091 end
0092
0093 if (printToFileFlag)
0094 fclose(fid);
0095 end