我对MATLAB完全陌生,我想知道从C ++文件进行数据流传输时我有哪些选择。
我听说过为此目的使用MATLAB“引擎”,以及诸如engPutVariable之类的一些方法,但是有人可以给我一个详尽的例子来说明如何实现它吗?我正在尝试实现正弦波流传输,但是通过一个简单的示例数据集发送就足够了。
回答:
您有两个选择:matlab引擎和mex函数。请务必注意,Matlab API是单线程的。绝对没有办法让用户可见的后台线程。充其量,UI事件有中断。
使用Matlab引擎,您的应用程序是一个使用Matlab作为外接程序库的C ++应用程序。您可以从C ++调用Matlab函数,但是必须确保在任何时间点只有一个线程访问Matlab。因此,您可能拥有一个线程,该线程将来自应用程序其余部分的输入队列中的数据馈送到Matlab。 C ++可以具有任意数量的线程,但是只有一个线程可以与Matlab交互。
另一种方法是让Matlab控制主应用程序,并在需要更多数据时调用C ++代码。 C ++代码充当Matlab的插件。 C ++代码可以具有任意数量的线程,但是Matlab在您的m文件调用它时会轮询C ++。查找有关MEX功能的文档。
更多&回答...