Matlab中保存运行的m文件
在调试参数的时候为了保证能够在之后完整复刻当前算例,最好保存当前运行的m文件到算例的图片和数据输出目录。
主要有两种方法:1 读写当前文件到指定文档;2 复制当前m文件到指定文件夹;
1 读写文件到指定路径
任意写一段script保存为’testing.m’,并指定之后数据的保存路径为’E:\AA’ 。
%%为了实验如何保存输出当前运行的文件
root_directory = 'E:\AA';
hms = clock; % hour, minute and second
M_name=mfilename;%获取当前M文件的名称
pathName = [root_directory '\' date '-' num2str(hms(4)) '-' num2str(hms(5)) '-' num2str(ceil(hms(6))) '-' M_name '\'];
dircommand=['mkdir ' pathName];
system(dircommand);%创建了存储的文件
saveM_T(pathName,M_name)%读写文件
a=0;
b=1;
c=b;
%test
v=c;
其中 saveM_T(pathName,M_name)
为读写M文件的程序,如下:
%%复制已知名称的M文件到指定路径并保存为txt
function saveM_T(pathname,M_name)
filename=[pathname, 'currentcode.txt'];
fo=fopen([M_name,'.m']);%需要复制的当前m文件
fp=fopen(filename,'a');%要写入的文件
while ~feof(fo)%识别文件的结尾
c=fgetl(fo);
fprintf(fp, '%s \n', c);
end
fclose(fp);
初始实验的时候采用的是将每行保存为cell的一个元素,然后用 writematrix
函数把整个cell写入txt,但是每一行都被加入了双引号,故改为读写形式。
2 复制文件到指定路径
对此只需要在确定存储路径后加入 copyfile
语句。
%%为了实验如何保存输出当前运行的文件
root_directory = 'E:\AA';
hms = clock; % hour, minute and second
M_name=mfilename;%获取当前M文件的名称
pathName = [root_directory '\' date '-' num2str(hms(4)) '-' num2str(hms(5)) '-' num2str(ceil(hms(6))) '-' M_name '\'];
dircommand=['mkdir ' pathName];
system(dircommand);%创建了存储的文件
%% 在确定存储路径后保存该M文件
copyfile([M_name, '.m'],pathName)
a=0;
b=1;
c=b;
%test
v=c;