我的问题:我可以将.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)