Changeset 128 for trunk/src/cell2tab.m
- Timestamp:
- Nov 21, 2010, 10:06:11 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/cell2tab.m
r126 r128 4 4 % 5 5 % OUTPUT: 6 % Tabchar: c haracter array suitable for table display6 % Tabchar: column cell of char strings suitable for display (equal length) 7 7 % 8 8 % INPUT: 9 % Tabcell: (ni,nj) cell table, for ni lines10 % separator: char acterused for separating displayed columns9 % Tabcell: (ni,nj) cell matrix of char strings to be displayed as ni lines , nj column 10 % separator: char string used for separating displayed columns 11 11 12 12 function Tabchar=cell2tab(Tabcell,separator) 13 Tabchar={};%default14 13 [ni,nj]=size(Tabcell); 15 14 16 15 %determine width of each column 17 widthcolumn=max(cellfun(@length,Tabcell)); 16 if isequal(ni,1) 17 widthcolumn=cellfun('length',Tabcell);% case of a single line, no justification used 18 else 19 widthcolumn=max(cellfun('length',Tabcell)); 20 end 21 lsep=numel(separator); %nbre of characters of the separator 22 nbchar_line=(sum(widthcolumn)+(nj-1)*lsep); %total nbre of characters in each output line 23 default_line=blanks(nbchar_line); %default blank line 24 Tabmat=reshape(blanks(nbchar_line*ni),ni,nbchar_line); 25 Tabchar=mat2cell(Tabmat,ones(1,ni),nbchar_line); %default output 18 26 19 27 %justify table 20 28 for itab=1:ni 21 charchain= [];29 charchain=default_line; 22 30 for jtab=1:nj% read line 23 31 textlu=Tabcell{itab,jtab}; 24 if widthcolumn(jtab)>length(textlu) 25 blankstr=char(32*ones(1,widthcolumn(jtab)-length(textlu))); 26 textlu=[textlu blankstr]; 32 if jtab==1 33 charchain(1:length(textlu))=textlu;%introduce separator chain string except for the first column 34 ind_column=widthcolumn(1);%new current char index in the line 35 else 36 charchain(ind_column+1:ind_column+lsep)=separator;%introduce separator chain string except for the first column 37 charchain(ind_column+lsep+1:ind_column+lsep+length(textlu))=textlu;%introduce separator chain string except for the first column 38 ind_column=ind_column+widthcolumn(jtab)+lsep; 27 39 end 28 if ~isempty(charchain)29 textlu=[separator textlu];30 end31 charchain=[charchain textlu];32 40 end 33 41 Tabchar(itab,1)={charchain}; 34 42 end 35 36 %nb : char(Tabchar(:,jtab)) gives directly a column with the blanks filled
Note: See TracChangeset
for help on using the changeset viewer.