how to use a simple statement to describe a repeat format output about the function "fprintf"?

13 Ansichten (letzte 30 Tage)
For example, fprintf(fid,'%4.2f %4.2f %4.2f %4.2f %4.2f',data) there are 5 '%4.2f', Can a simple statement like the (5'%4.2') to simplify the output format? I have no idea about it and do not find in the documents of matlab.

Akzeptierte Antwort

Matt Fig
Matt Fig am 17 Nov. 2012
fprintf(fid,repmat('%4.2f',1,5),data)
  3 Kommentare
Matt Fig
Matt Fig am 22 Nov. 2012
Bearbeitet: Matt Fig am 22 Nov. 2012
C = {'%5.2f ';'%4.3f ';'\n'};
[C{[1 2*ones(1,8) 3]}]
You can build C with as many elements as needed then pass in an index to get the order and number you need.
Henry Wolkowicz
Henry Wolkowicz am 19 Apr. 2025
Bearbeitet: Henry Wolkowicz am 19 Apr. 2025
can one complicate things with
C={'%5.2f & '} for latex table purposes? I keep getting 'number' echos if I try this

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Image Analyst
Image Analyst am 17 Nov. 2012
No need to replicate the format string - it will do that automatically. Try it this way:
fprintf(fid,'%4.2f ', data);
  3 Kommentare
Image Analyst
Image Analyst am 22 Nov. 2012
Not sure I understand. That will have every 9th element print with a field width of 5 and the 8 numbers in between print with a field width of 4. Also the printout line will have 9 numbers per row whereas your array has 8 numbers per row. Is that what you want, or not? Because that's what you'd be telling it to do.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Standard File Formats finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by