0

我从 C++ 运行 MATLAB 函数 (dll)。此函数获取一些参数并运行具有多次迭代的循环。有没有办法在 C++ 代码中设置一些标志并在 MATLAB 函数的每次迭代中检查它。如果在 C++ 代码中将此标志设置为 false(让另一个线程说),MATLAB 函数将中断循环并返回 C++ 代码

4

1 回答 1

0

如果您可以同时修改 C++ 和 MATLAB 代码(正如我们可以从问题中假设的那样),我认为最简单的方法是使用空文件作为事件的标志。如果其他线程可以创建文件,比如“event.flag”,您可以在 MATLAB 函数中轻松检查它的存在:

if exist('event.flag','file')
    % do_something
end

确保包含第二个参数file,这将使存在运行得更快。

我相信这个解决方案比尝试使用任何全局变量更容易且防错。


如果您需要在运行时在 MATLAB 和其他进程之间交换一些数据,我建议使用MEMMAPFILE对象。检查文档以查看它是否适合您的情况。

于 2013-02-27T15:50:04.027 回答