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



我的问题:我可以将.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,但我不想这样做。

内存中加载的文件仍然是原始文件,但磁盘上的文件现在是修改的文件。最好的选择是要么在代码开头致电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)

最新更新