# When using fprintf to format multiple strings, what does the integer after the % sign do?

47 views (last 30 days)

Show older comments

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 Comments

### Answers (1)

Shashank Prasanna
on 29 Jan 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 Comments

Jan
on 30 Jan 2013

### See Also

### Categories

### Community Treasure Hunt

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

Start Hunting!