CSVWRITE 関数を使ってワークス​ペースの変数をファイ​ル出力すると、数値精​度(桁数)が保持され​ません。数値精度を保​持してテキストファイ​ルに出力することはで​きますか?

8 次查看(过去 30 天)
CSVWRITE 関数を使ってワークスペースの変数をファイル出力すると、数値精度(桁数)が保持されません。数値精度を保持してテキストファイルに出力する方法を教えてください。

采纳的回答

MathWorks Support Team
CSVWRITE 関数を使用した場合、出力値は 5 桁のスケーリングされた値(>>format shortと同等)になります。
代わりに、DLMWRITE 関数を使用することで、数値精度を指定することが可能です。
数値精度の指定には、'precision' オプションを使用します。
また、.CSV ファイルと同様にカンマ区切りにしたい場合には、'delimiter' オプションを、','(カンマ)に設定します。
以下の2つの例では、下記変数 x をファイル出力します。
>> format long
>> x = randn(2)
x =
-0.432564811528221 0.125332306474831
-1.665584378238097 0.287676420358549
例1: .CSV ファイルへの出力
% 小数点以下12桁の数値精度、カンマ区切りで .csv ファイルに出力
dlmwrite('test22.csv', x, 'precision', '%.12f', 'delimiter', ',')
出力されたテキストファイル(.csv)
例2: .TXT ファイルへの出力
% 有効桁数16桁の数値精度、タブ区切りで .txt ファイルに出力
dlmwrite('test21.txt', x, 'precision', 16, 'delimiter', '\t');
(出力されたテキストファイル)

更多回答(0 个)

Community Treasure Hunt

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

Start Hunting!