我有一个 matlab 脚本,它顺序执行 5 个算法。所有这 5 种算法都需要运行 10 次不同的初始化。
只要第 i 个初始化出现错误,脚本就会退出并显示错误消息。我修复了问题(例如数据问题)并再次开始运行从第一次初始化开始执行的脚本。
我不想让我的代码运行之前执行的初始化。 (从 1 次运行到 i-1 次运行)
一种方法是重新分配索引的值,从i开始,这又需要一次又一次地修改脚本。
有没有办法从第i次初始化开始重新启动脚本,而不需要修改脚本?
最佳答案
我建议您使用try和catch,并检查哪些索引成功。
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/