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