2016-06-16 4 views
0

私の質問:コードの後の時点でファイルに書き込むために.mファイルの状態を変数として保存できますか?問題は、コード実行の数分または数時間の間に、私はオリジナルの.mコードに多くの編集を行います、ということです.mファイルの現在の状態を保存し、後でファイルに書き込む(Matlab)

source_file  = mfilename('fullpath'); 
write_path  = '~/data'; 

(code that takes many minutes to execute) 

copyfile([source_file,'.m'],[write_path,'/source_file.m']); 

現在、私はこれらの行を持っています。ファイルの最後にcopyfileが呼び出されると、実行されたコードの代わりに変更されたコードが保存されます。私はもちろんコードの大部分の前にcopyfileと呼ぶことができることを理解していますが、それをしたくないです。

答えて

2

メモリに読み込まれたファイルは元のファイルですが、ディスク上のファイルは変更されたファイルになりました。あなたの最善の策は、あなたのコードの先頭にcopyfileを呼び出すことです(これはなぜできないのか分かりません)。何らかの理由で本当にできない場合は、freadを使用してソースコードを読み取り、スクリプトが完了した後に同じ文字列に書き出すことができます。

fid = fopen(source_file, 'r'); 
source_code = fread(fid); 
fclose(fid); 

% Do stuff 

fout = fopen(fullfile(write_path, 'source_file.m'), 'w'); 
fwrite(fout, source_code); 
fclose(fout) 
関連する問題