我将MATLAB项目部署到DLL中,从C++调用它,并且效果很好。快乐的时光。

但是,当用户要求取消操作时会发生什么?

我尝试创建一个名为globalUserAborted变量。在MATLAB中运行long函数之前,我将其初始化为0。我还编写了以下两个函数:

function AbortIfUserRequested
    global UserAborted

    if (UserAborted == 1)
        error('User Abort');
    end
end

function UserAbortLongFunction
    global UserAborted

    UserAborted = 1;
end

我在long函数的每次循环迭代中都调用AbortIfUserRequested。我还导出了UserAbortLongFunction

我期望在调用UserAbortLongFunction之后不久,long函数将到达对AbortIfUserRequested的调用,并引发错误。

相反,long函数将一直运行到最后,然后才更改UserAborted的值。

我只想在用户要求时中止该长功能!有什么办法吗?

最佳答案

Matlab需要提供回调函数来显示执行进度并可能将其暂停。 Google搜索显示很多人都希望这样做,但Mathworks没有实现。

关于c++ - 如何从C/C++中止MATLAB m文件功能?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1470716/

10-10 16:56