Matlab Issue with aligning text in table format in .txt file

  • #1
muaaman
5
0

Homework Statement


uData is a 30x5 matrix with numbers. name_Database is a 30x1 cell array with strings of Names (e.g. Fake Subject 1, Fake Subject 2, Bob). What would fix the code so that the data aligns? (please see image for the misalignment).

unaligned-table_txtfile.png

Homework Equations




The Attempt at a Solution


[/B]

Code:
ID = dbedit.uData(:,1);
scE = dbedit.uData(:,2);
ccE = dbedit.uData(:,3);
scC = dbedit.uData(:,4);
ccC = dbedit.uData(:,5);
names = dbedit.name_Database;
% Text file to output data into is called uDatabase.txt file.
output_file = 'uDatabase.txt';
% Open file for writing
fid = fopen(output_file, 'w+');
% Header
fprintf(fid, '%6s %12s %18s %24s %30s %36s\n', 'Name', 'ID', 'scE',...
    'ccE', 'scC', 'ccC');
% Write the data.
for ii=1:numel(names)
    fprintf(fid, '%6s %12.0f %18.0f %24.0f %30.0f %36.0f\n',names{ii},...
    ID(ii),scE(ii),ccE(ii),scC(ii),...
    ccC(ii));
end
% Close the .txt file.
fclose(fid);
 

Answers and Replies

  • #2
36,462
8,430
It looks to me like most of the data you are printing to the file is integer data, so I would be using %d conversion specifiers in place of the %f conversion specifiers you are using.

Also, I think you have a misconception about what the number in a conversion specifier such as %18.0f does. This does NOT start printing in column 18. What it does is print the floating point number in a field of width 18, with no digits to the right of the decimal point. Because your conversion specifiers are %6s %12s %18s and so on, you get ever increasing spacing between subsequent numbers. The link below discusses how to use conversion specifiers to format strings or number sent to the screen or to a file.

http://www.mathworks.com/help/matlab/matlab_prog/formatting-strings.html
 

Suggested for: Matlab Issue with aligning text in table format in .txt file

  • Last Post
Replies
3
Views
444
  • Last Post
Replies
5
Views
353
  • Last Post
Replies
1
Views
466
  • Last Post
Replies
1
Views
332
  • Last Post
Replies
10
Views
406
  • Last Post
Replies
3
Views
73
  • Last Post
Replies
1
Views
428
Replies
5
Views
748
  • Last Post
Replies
1
Views
241
  • Last Post
Replies
8
Views
550
Top