vertically aligned data using fprintf

32 次查看(过去 30 天)
data=
1 0 -0.828330184322257 -1.90936748180674 -0.973747768469492
1 300 -0.838221643420248 -1.73368790711073 -0.694053671027946
1 600 -0.719016934251202 -1.77992572323036 -0.809246004716909
1 900 -0.685322042436873 -1.62664527333989 -0.659059040624753
1 1200 -0.598472883146815 -1.68630603450331 -0.631032590099370
The above data matrix is just a part of my orginal data file. I use the following code to print the data in a text file:
fprintf(fid, '\n');
fprintf(fid,'%02d %d %.3f %.3f %.3f\n', data');
fclose(fid);
The printed results in a text file looks like:
01 0 -0.828 -1.909 -0.974
01 300 -0.838 -1.734 -0.694
01 600 -0.719 -1.780 -0.809
01 900 -0.685 -1.627 -0.659
01 1200 -0.598 -1.686 -0.631
As seen, the vertical alignment of the columns (except for 1st column) are not maintained due to the different size of 2nd column and the signs (+,-) of 3-4-5 columns. How I can print the vertically aligned data matrix of each column?

采纳的回答

Jan
Jan 2021-11-11
编辑:Jan 2021-11-11
Use the width in the format specifier
data = [1 0 -0.828 -1.909 -0.974; ...
1 300 -0.838 -1.734 -0.694; ...
1 600 -0.719 -1.780 -0.809; ...
1 900 -0.685 -1.627 -0.659; ...
1 1200 -0.598 -1.686 -0.631];
fprintf('%02d %-8d%16.3f%16.3f%16.3f\n', data');
01 0 -0.828 -1.909 -0.974 01 300 -0.838 -1.734 -0.694 01 600 -0.719 -1.780 -0.809 01 900 -0.685 -1.627 -0.659 01 1200 -0.598 -1.686 -0.631

更多回答(0 个)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by