When using fprintf to format multiple strings, what does the integer after the % sign do?
54 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
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 Commenti
Risposte (1)
Shashank Prasanna
il 29 Gen 2013
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 Commenti
Jan
il 30 Gen 2013
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.
Vedere anche
Categorie
Scopri di più su Characters and Strings in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!