从C ++代码控制MATLAB DLL

时间:2013-02-27 14:33:30

标签: c++ matlab

我从C ++运行一个MATLAB函数(dll)。这个函数得到一些参数和 运行一个循环与许多itterations。有没有办法在C ++代码中设置一些标志,并在MATLAB函数的每次迭代中检查它。如果在C ++代码中将此标志设置为false(假设由另一个线程),则MATLAB函数将断开循环并返回到C ++代码

1 个答案:

答案 0 :(得分:0)

如果您可以修改C ​​++和MATLAB代码(我们可以从问题中假设),我认为最简单的方法是使用空文件作为事件的标志。如果其他一些线程可以创建一个文件,让我们说'event.flag',你可以在MATLAB函数中轻松检查它的存在:

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

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

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


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