数字のファイルの保存方法[コマンド:save]

5 views (last 30 days)
wataru suzuki
wataru suzuki on 3 Nov 2020
Commented: 源樹 上林 on 7 Nov 2020
以下のような行列を作成し、ファイルに保存するプログラムを作りました。
その結果、 ~e++00 のようなあまり見かけない数字の表記方法になりました。
save内のasciiが原因だと考えたのですが通常の数字で表示する方法がわかりません。
教えてください
%初期化
clear
N=4;
%頭の数字でない文字列のファイル名
rootname = 'tonbo'; % ファイル名に使用する文字列
%保存するファイルの拡張子の指示
extension = '.txt'; % 拡張子
for k = 1:4
for x=1:N
for y=1:N
Data_trans(x,y)=N*(x-1)+y;
end
end
data = Data_trans;
filename = [rootname, num2str(k), extension]; % ファイル名の作成
save(filename,'data','-ascii') % ファイルへの保存
end
  2 Comments
Kiyoto Matsumoto
Kiyoto Matsumoto on 6 Nov 2020
save()のオプションで指数表現をしない方法は分らなかったのですが、
代わりにwritematrix()を使うのはどうでしょう。
%初期化
clear
N=4;
%頭の数字でない文字列のファイル名
rootname = 'tonbo'; % ファイル名に使用する文字列
%保存するファイルの拡張子の指示
extension = '.txt'; % 拡張子
for k = 1:4
for x=1:N
for y=1:N
Data_trans(x,y)=N*(x-1)+y+0.1;
end
end
data = Data_trans;
filename = [rootname, num2str(k), extension]; % ファイル名の作成
writematrix(data,filename)
end
源樹 上林
源樹 上林 on 7 Nov 2020
> ~e++00 のようなあまり見かけない数字の表記方法になりました。
 分野が違えば普通に使う書式なんですが、指数表現です。
 saveで数値をASCIIファイル形式で保存する場合は、指数表現に限定されます。
ヘルプにも記載がありますが、dlmwrite または fprintf を使用する方法を検討したほうがいいと思います。
https://jp.mathworks.com/help/matlab/ref/save.html
> ヒント
> より柔軟に ASCII ファイルを作成するには、dlmwrite または fprintf を使用します。
「通常の数字」は整数表記だと思います。こうかな。
dlmwrite(filename, data, 'precision', '%d')
writematrixで書式指定はどうやるんだ…?

Sign in to comment.

Answers (0)

Tags

Community Treasure Hunt

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

Start Hunting!