2017-02-25 5 views
0

私は、Editor.mとParameters.mの2つのファイルを持っています。別のMATLABファイル(.m)を編集するMATLABコードを作成するにはどうすればよいですか?

  • (例えばDT = 1)
  • が何かでそれを置き換えることでParameters.m
  • ラインの
  • 検索を読み取ります。私は、実行がない場合は、次のタスクがあることEditor.mでコードを書きたいですelse(例:dt = 0.6)
  • パラメータmを保存します。

したがって、このプロセスの最後に、Parameters.mには、dt = 1ではなくdt = 0.6の行が含まれます。

これを行う方法はありますか?もしそうなら、どうですか?

答えて

1

regexprepを使用して重要な値を置き換えることができます。あなたはそれだけで今まで'dt=1'として表示されますことを保証することができる場合

% Read the file contents 
fid = fopen('Parameters.m', 'r'); 
contents = fread(fid, '*char').'; 
fclose(fid); 

% Replace the necessary values 
contents = regexprep(contents, '(?<=dt=)\d*\.?\d+', '0.6'); 

% Save the new string back to the file 
fid = fopen('Parameters.m', 'w'); 
fwrite(fid, contents) 
fclose(fid) 

、あなたはstrrep代わり

contents = strrep(contents, 'dt=1', 'dt=0.6'); 
+0

感謝を使用することができます。内容( '(?<= \ ndt =)。*?(?<= \ n)'、 '0.6')は簡単に説明できますか? 私のファイルにdt = 1が入っていることが分かっていれば(ファイル内のどこにも表示されません)、(dt = 1、 'dt = 0.6')と置き換えることはできますか? – odnerpmocon

+0

@odnerpmoconこれは、 'dt ='に続く数字にマッチし、 '0.6'に置き換えられる正規表現です。純粋に 'dt = 1'を検索するよりも頑丈です – Suever

+0

大変ありがとうございます! – odnerpmocon

関連する問題