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