我需要从for
MATLAB中的循环运行C ++可执行文件。我为此编写了以下代码,
EqNumbers = [17 18 20 21 22 23];
for i = 1:length(EqNumbers)
EqNumber = EqNumbers(i);
WriteRunE_File(EqNumber);
filename=['RunE_1.tcl'];
system(['OpenSees.exe<',filename]);
end
在大多数情况下,它运行良好,但是有时会出现调试错误(如下图所示)。它提示我采取措施,如果我按“中止”按钮,则程序将继续进行下一次迭代。我只想使此过程自动化,对我来说,每次手动按下中止按钮都是不可能的,因为该程序中有1000多次迭代。
我尝试使用try-catch end
以下方法,但没有达到目的。
EqNumbers = [17 18 20 21 22 23];
for i = 1:length(EqNumbers)
try
% Code to be executed goes here.
EqNumber = EqNumbers(i);
WriteRunE_File(EqNumber);
filename=['RunE_1.tcl'];
system(['OpenSees.exe<',filename]);
catch
disp('An error occurred in Equke');
disp('Execution will continue.');
end
end
我正在寻找一种方法来绕过错误消息或自动按“中止”按钮。这样程序将自动移至下一个迭代。
注意:
我无权访问C ++源代码(我所拥有的都是可执行文件),因此无法更新的值citaR
。这就是为什么我要在MATLAB中寻找解决方法。
MATLAB不会弹出此对话框。您的系统是。
有人创建了一个使用未初始化变量且行为未定义的程序。他们以调试模式构建它。这种组合导致一个断言。您不能仅将其关闭。
即使可以,您也将中止该程序。这并不意味着“忽略问题”:而是“中止程序”。它尚未完成工作。崩溃了 每一次。
可执行文件有故障。期。
该程序的作者应为您提供一个发行版本:理想情况下,应为非越野车版本。
或者,由于该程序是开源的,并且可以在此处找到,您可以尝试构建一个新版本,或对其进行调试并提供一个修复程序。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句