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

  • #1
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
33,981
5,639
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
 

Related Threads on Matlab Issue with aligning text in table format in .txt file

Replies
12
Views
4K
Replies
1
Views
2K
  • Last Post
Replies
3
Views
1K
  • Last Post
Replies
6
Views
2K
Replies
4
Views
4K
Replies
6
Views
19K
  • Last Post
Replies
3
Views
3K
  • Last Post
Replies
5
Views
803
  • Last Post
Replies
1
Views
1K
Top