fprintf varying number of decimal places in a column

7 views (last 30 days)
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
Anna Cole
Anna Cole on 4 Jun 2018
I tried the %.*f earlier and this was the result
dpb
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.

Sign in to comment.

Accepted Answer

Walter Roberson
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

More Answers (0)

Categories

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

Tags

Products


Release

R2018a

Community Treasure Hunt

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

Start Hunting!