我当前写好了一个代码 工作区每次运行完会有不少数据 我需要每次运行完代码自动保存工作区里k、p的值(标量),然后重新开始运行再保存,运行我手点都行,但数据要怎么保存呢 用save函数似乎会让数据被覆盖 最后只得到一次运行的数据
1条回答 默认 最新
关注可以使用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命令加载上次保存的变量,以便在程序中使用。请注意,在第一次运行程序时,无需加载上一次的数据,因此需要在条件语句中进行检查以避免出现错误。
解决评论 打赏 举报无用 2