保存.m文件的当前状态,稍后写入文件(Matlab)

时间:2016-06-16 01:44:33

标签: matlab io save file-copying

我的问题:我可以将.m文件的状态保存为变量,以便稍后在代码中写入文件吗?

目前,我有以下几行:

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

(code that takes many minutes to execute)

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

问题在于,在代码执行的几分钟或几小时内,我将对原始.m代码进行许多编辑。在文件末尾调用copyfile时,它会保存修改后的代码而不是已执行的代码。我当然知道我可以在大部分代码之前调用copyfile,但我不想这样做。

1 个答案:

答案 0 :(得分:2)

内存中加载的文件仍然是原始文件,但磁盘上的文件现在是修改后的文件。您最好的选择是在代码开头调用copyfile(不知道为什么不能这样做)。如果由于某种原因你真的无法做到这一点,你可以使用fread读取源代码,然后在脚本完成后将相同的字符串 out 写入另一个文件。

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)