printLabeledData

PURPOSE ^

printLabeledData Print a matrix of data with labels

SYNOPSIS ^

function printLabeledData(labels,data,nonzeroFlag,sortCol,fileName,headerRow,sortMode)

DESCRIPTION ^

printLabeledData Print a matrix of data with labels
 
 printLabeledData(labels,data,nonzeroFlag,sortCol,fileName,headerRow,sortMode)

 labels        Row labels
 data          Data matrix/vector
 nonzeroFlag   Only print nonzero rows (opt)
 sortCol       Column used for sorting (-1, none; 0, labels; >0, data
 columns; opt)
 fileName      Name of output file (opt)
 headerRow     Header (opt)
 sortMode      Sort mode, 'ascend' or 'descend' (opt, default 'ascend')

 Markus Herrgard 6/9/06

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function printLabeledData(labels,data,nonzeroFlag,sortCol,fileName,headerRow,sortMode)
0002 %printLabeledData Print a matrix of data with labels
0003 %
0004 % printLabeledData(labels,data,nonzeroFlag,sortCol,fileName,headerRow,sortMode)
0005 %
0006 % labels        Row labels
0007 % data          Data matrix/vector
0008 % nonzeroFlag   Only print nonzero rows (opt)
0009 % sortCol       Column used for sorting (-1, none; 0, labels; >0, data
0010 % columns; opt)
0011 % fileName      Name of output file (opt)
0012 % headerRow     Header (opt)
0013 % sortMode      Sort mode, 'ascend' or 'descend' (opt, default 'ascend')
0014 %
0015 % Markus Herrgard 6/9/06
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,:))))) % Print only nonzeros
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

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