When using fprintf to format multiple strings, what does the integer after the % sign do?
54 次查看(过去 30 天)
显示 更早的评论
Hi,
Given something such as:
fprintf('%5d %10.3f %8.5e\n',100,2*pi,pi);
What do the numbers directly after the % sign do? I understand that %5d displays an integer, 5 spaces in from the beginning of the line. But, I don't understand what the %10 does. I know the .3f says to display decimal format with 3 decimal places, but what does the 10 do? And what does the %8 do? If I type
fprintf('%5d %3.3f %8.5e\n',100,2*pi,pi); or fprintf('%5d %4.3f %8.5e\n',100,2*pi,pi);
I get the same answer. It isn't until I get to
fprintf('%5d %6.3f %8.5e\n',100,2*pi,pi);
That the spacing changes, and then the spacing increases by 1. So, I see that it seems to be related to the previous spacing argument, but I can't figure out the exact pattern. Clarification would be greatly appreciated. Thank you!
0 个评论
回答(1 个)
Shashank Prasanna
2013-1-29
It is the field width or the minimum numbers of characters to print.
Check this link out:
scroll down for a diagrammatic representation and explanation.
2 个评论
Jan
2013-1-30
As the documentation explains accurately, the value before the dot is the "field width", and the value after the point the "precision". If a number has more digits, caused by its value and the precision, than allowed by the field width, more digits are written. This means, the first value is a "minimal field width" and spaces are used for padding on demand.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Characters and Strings 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!