filereadで読​み込んだファイルを別​名で保存するコマンド​を知りたいです。

4 ビュー (過去 30 日間)
YOKOI Sayoko
YOKOI Sayoko 2024 年 4 月 24 日
コメント済み: Akira Agata 2024 年 4 月 25 日
テキストファイル(240313.rtm)を読み込んで、一部を編集し、別名で保存することをしたいです。
saveではうまくいかず、最適な方法があればお教えください。
>> a=fileread('240313.rtm') 
a =
'EEM-RTM
5 1
240313_3F_4-5GHz-nn
fffe9
====MATERIAL====
2 xxx 0.25 0.02 "ceil"
2 yyy 0.16 0.025 "wall"
2 zzzz 0.04 0.0265 "floor"
2 4 0 0.15 "concrete"
0
'
>> b=replace(a, 'xxx', '4.0')
b =
'EEM-RTM
5 1
240313_3F_4-5GHz-nn
fffe9
====MATERIAL====
2 4.0 0.25 0.02 "ceil"
2 yyy 0.16 0.025 "wall"
2 zzzz 0.04 0.0265 "floor"
2 4 0 0.15 "concrete"
0
'
save('240313-1.rtm', 'b')  %これでは保存できない

採用された回答

Atsushi Ueno
Atsushi Ueno 2024 年 4 月 24 日
fprintf 関数でASCIIファイルに文字列を書き込めます。
movefile 240313.txt 240313.rtm % 都合で拡張子rtmのファイルをupload出来ない⇒拡張子をrtmに変更
a = fileread('240313.rtm');
b = replace(a, 'xxx', '4.0');
fileID = fopen('240313-1.rtm','w');
fprintf(fileID,'%s\n',b); % これなら保存できる
fclose(fileID);
type 240313-1.rtm
EEM-RTM 5 1 240313_3F_4-5GHz-nn fffe9 ====MATERIAL==== 2 4.0 0.25 0.02 "ceil" 2 yyy 0.16 0.025 "wall" 2 zzzz 0.04 0.0265 "floor" 2 4 0 0.15 "concrete" 0
  2 件のコメント
YOKOI Sayoko
YOKOI Sayoko 2024 年 4 月 25 日
ありがとうございました。うまく実行することができました。
Akira Agata
Akira Agata 2024 年 4 月 25 日
+1
テキストファイルを読み書きするための関数である readlines / writelines を使っても実現可能です。
% ファイル読み込み
s1 = readlines("240313.rtm");
% xxx を 4.0 に置換
s2 = replace(s1, "xxx", "4.0");
% 別ファイル名で保存
writelines(s2, "240313-1.rtm");

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeGenomics and Next Generation Sequencing についてさらに検索

Community Treasure Hunt

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

Start Hunting!