从 MATLAB 调用 C++ 可执行文件时如何绕过错误对话框?

How to bypass an error dialog when calling a C++ executable from MATLAB?

我需要 运行 来自 MATLAB 中 for 循环的 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

大部分时间都运行良好,但有时会出现调试错误(如下所示)。它提示我采取行动,如果我按下 "Abort" 按钮,程序将继续进行下一次迭代。我只是想让这个过程自动化,每次手动按下中止按钮对我来说是不可能的,因为程序中有超过 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

我正在寻找绕过错误消息或自动按下 "Abort" 按钮的方法。使程序自动进入下一次迭代

注:

我无权访问 C++ 源代码(我只有一个可执行文件),因此我无法更新 citaR 的值。这就是我在 MATLAB 中寻找解决方法的原因。

MATLAB 没有弹出这个对话框。你的系统是。

有人创建了一个使用未初始化变量并具有未定义行为的程序。他们在调试模式下构建它。这种组合导致断言。你不能把它关掉。

即使可以,您也在中止程序。这并不意味着 "ignore the problem":它意味着 "abort the program"。它没有完成它的工作。它坠毁了。每一次。

可执行文件有问题。期间.

程序的作者应该给你一个发布版本:理想情况下,一个没有错误的版本。

或者,由于该程序是开源的并且可以找到 right here,您可以尝试构建一个新版本,或者对其进行调试并提供修复。