我当前写好了一个代码 工作区每次运行完会有不少数据 我需要每次运行完代码自动保存工作区里k、p的值(标量),然后重新开始运行再保存,运行我手点都行,但数据要怎么保存呢 用save函数似乎会让数据被覆盖 最后只得到一次运行的数据
可以使用for循环结合save命令来实现重复运行程序并自动保存工作区数据。每次运行程序时,在程序结束后使用save命令将需要保存的变量存储到一个新的.mat文件中,并在文件名中加入时间戳或序号以避免文件重名覆盖。每次运行程序时,使用load命令加载上一次的.mat文件以获取上次运行所保存的变量。下面是示例代码:
for i = 1:10 %循环运行10次程序
%运行程序得到变量k和p
k = 1;
p = 2;
%保存变量到新的.mat文件中
file_name = sprintf('data_%s.mat', datestr(now,'yyyymmdd_HHMMSS')); %文件名中添加当前时间戳
save(file_name, 'k', 'p');
%加载上一次保存的.mat文件中的变量
if i>1 %如果i>1才需要加载上次的数据
last_file_name = sprintf('data_%s.mat', datestr(now-(i-2),'yyyymmdd_HHMMSS')); %计算上一次保存的文件名
load(last_file_name, 'k', 'p'); %从上一次保存的文件中加载变量k和p
end
end
在上面的示例中,将变量k和p存储到了一个以当前时间戳命名的.mat文件中。在每次运行程序之前,程序会检查上一次保存的文件名并使用load命令加载上次保存的变量,以便在程序中使用。请注意,在第一次运行程序时,无需加载上一次的数据,因此需要在条件语句中进行检查以避免出现错误。