保存 .m 文件的当前状态,稍后写入文件(Matlab)
Save current state of .m file, write to file later (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)
我的问题:我可以将 .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)