Writing a string that fills to the left

7 views (last 30 days)
Hi,
I have data in an array wich I want to output into a text file to match the way another program writies it.
The program seems to write the data with the right most number in a specific column and then fills to the left. So it is like:
Item one: 2.3 15.1 78.1
Item two: 1254.1 678.1 54283.1
I am using and fprintf statment something like:
fprintf(fid,"Item one: %d %d %d,A,B,C)
Using this method, it puts the numbers after a set of spaces and fills to the right, as if you were typing it. The behavour I want is to be able to get it to fill to the left so the rightmost column always lines up.
Is there a way to do that?
Thanks,

Accepted Answer

Scott MacKenzie
Scott MacKenzie on 23 May 2021
You need to include a field width in the format specifier.
An example for integers:
fprintf(fid, 'Item one: %8d %8d %8d', A, B, C);
An example for reals with 1 decimal place:
fprintf(fid, 'Item one: %8.1f %8.1f %8.1f', A, B, C);
Full details are here.
  1 Comment
James Browne
James Browne on 25 May 2021
Great, thankyou!
I can see from that help you can also left justify the field width by using a '-' sign but still have the padding effect that I wanted.

Sign in to comment.

More Answers (0)

Categories

Find more on Characters and Strings in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!