fprintf varying number of decimal places in a column

2 ビュー (過去 30 日間)
Anna Cole
Anna Cole 2018 年 6 月 4 日
回答済み: Walter Roberson 2018 年 6 月 4 日
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 件のコメント
Anna Cole
Anna Cole 2018 年 6 月 4 日
I tried the %.*f earlier and this was the result
dpb
dpb 2018 年 6 月 4 日
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.

サインインしてコメントする。

採用された回答

Walter Roberson
Walter Roberson 2018 年 6 月 4 日
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 件)

カテゴリ

Help Center および File ExchangeCharacters and Strings についてさらに検索

タグ

製品


リリース

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by