fprintf varying number of decimal places in a column
7 views (last 30 days)
Show older comments
Anna Cole
on 4 Jun 2018
Answered: Walter Roberson
on 4 Jun 2018
I have a column with mostly zeros and a few numbers. On the zero values I need them to display as 0.0 and the number values I need to display the actual number of decimals such as 1.23456789. What formatting can I use?
7 Comments
dpb
on 4 Jun 2018
You used the '*' in the format string but didn't pass a corresponding vector of values to fill the place holder so fprintf used the next data from d when needed, leaving shorthanded as far as actual data to print.
Accepted Answer
Walter Roberson
on 4 Jun 2018
b=zeros(10,1);
b(5)=4.56987;
b(6)=6.4;
a=[1:1:10]';
c = 5 * ones(length(a),1);
c(b==0) = 1;
d=[a,c,b];
fileID = fopen('fprintftrial.txt','w');
fprintf(fileID, '%d,%.*f\n', d');
fclose(fileID);
Result looks like
1,0.0
2,0.0
3,0.0
4,0.0
5,4.56987
6,6.40000
7,0.0
8,0.0
9,0.0
10,0.0
0 Comments
More Answers (0)
See Also
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!