我从 C++ 运行 MATLAB 函数 (dll)。此函数获取一些参数并运行具有多次迭代的循环。有没有办法在 C++ 代码中设置一些标志并在 MATLAB 函数的每次迭代中检查它。如果在 C++ 代码中将此标志设置为 false(让另一个线程说),MATLAB 函数将中断循环并返回 C++ 代码
问问题
66 次
1 回答
0
如果您可以同时修改 C++ 和 MATLAB 代码(正如我们可以从问题中假设的那样),我认为最简单的方法是使用空文件作为事件的标志。如果其他线程可以创建文件,比如“event.flag”,您可以在 MATLAB 函数中轻松检查它的存在:
if exist('event.flag','file')
% do_something
end
确保包含第二个参数file
,这将使存在运行得更快。
我相信这个解决方案比尝试使用任何全局变量更容易且防错。
如果您需要在运行时在 MATLAB 和其他进程之间交换一些数据,我建议使用MEMMAPFILE对象。检查文档以查看它是否适合您的情况。
于 2013-02-27T15:50:04.027 回答