fprintf %f
9 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I have an fprintf command
fprintf('\n %s \n%0.3f',Data{:})
where my data contains a sentence and then an array. I want the decimal places for the array to only go to 3 which seems only work for every other number. So every thing comes out fine but it looks like this:
Sentence
1.784
2.862691e+000
2.737
2.855501e+000
2.976
i dont want the exponentials
1 Kommentar
Jan
am 1 Okt. 2011
Please post the contents of the Data cell. I cannot imagine, that the posted format string can create the shown answer.
Akzeptierte Antwort
Image Analyst
am 1 Okt. 2011
Your format specifier string expects Data to have the form "string number string number string number etc." Apparently Data{1} is a string but I'm not sure Data{3} and Data{5} are. They're probably numbers, not strings, so when it tries to print those numbers out as strings (according to %s) you get the unexpected results. Show us how you constructed Data.
5 Kommentare
Image Analyst
am 1 Okt. 2011
You have 3 numbers for each string, so you need to do
fprintf('\n %s \n%0.3f %.3f %.3f',Data{:})
Weitere Antworten (1)
Jan
am 1 Okt. 2011
I guess that your Data are:
Data = {'Sentence', [1.784, 2.862691, 2.737, 2.855501, 2.976]};
When you use the format string '\n %s \n%0.3f' every second number is displayed using the '%s' format. So you have to split the string from the numerical data:
fprintf('\n %s', Data{1});
fprintf(' \n%0.3f', Data{2});
Or perhaps: fprintf(' \n%0.3f', Data{2:end});
0 Kommentare
Siehe auch
Kategorien
Mehr zu String Parsing finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!