matlab - 如何从中断处重新启动 matlab 脚本?

标签 matlab

我有一个 matlab 脚本,它顺序执行 5 个算法。所有这 5 种算法都需要运行 10 次不同的初始化。

只要第 i 个初始化出现错误,脚本就会退出并显示错误消息。我修复了问题(例如数据问题)并再次开始运行从第一次初始化开始执行的脚本。

我不想让我的代码运行之前执行的初始化。 (从 1 次运行到 i-1 次运行)

一种方法是重新分配索引的值,从i开始,这又需要一次又一次地修改脚本。

有没有办法从第i次初始化开始重新启动脚本,而不需要修改脚本?

最佳答案

我建议您使用trycatch,并检查哪些索引成功。

 function errorIndexes = myScript(indexes)
     errorIndexes = [];
     errors = {};
     for i = indexes
         try
         %Do something
         catch me                
            errorIndexes(end+1) = i;
            errors{end+1} = me;      
         end
     end
 end

在外面你应该有一个像这样的主文件:

function RunMyScript()
     if exist('unRunIndexes.mat','file')
        unRunIndexes= load('unRunIndexes.mat');
     else
        unRunIndexes= 1:n;
     end
     unRunIndexes= myScript( indexes)
     save('unRunIndexes.mat',unRunIndexes);
end

关于matlab - 如何从中断处重新启动 matlab 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8832121/

相关文章:

matlab - 在Matlab中将符号分解的输出转换为矩阵表示

matlab - Matlab/OpenCV创建角度图像

matlab - Matlab 中的凝聚聚类

c - 如何使用Matlab生成的C代码?

machine-learning - 如何使用 libsvm matlab 固定参数 cost 和 gamma 来提高精度?

c++ - 如何将 MATLAB 图像处理库内置函数转换为 matlab coder 代码生成不支持的 c++?

function - 为什么我没有通过任何错误时会收到 "Too many input arguments"错误?

matlab - MATLAB 3D 图形中的透视控制

r - 如何知道R中矩阵或向量的维度?

oop - 类对象统一输出的matlab arrayfun