2009-07-01 49 views
4

我完全不熟悉MATLAB,我想知道我的选项是用于从C++文件进行数据流传输的。MATLAB中的数据流与来自C++可执行文件的输入数据

我听说过使用MATLAB“引擎”来达到这个目的,以及一些像engPutVariable等方法,但是有人能给我一个彻底的例子来说明如何去做这件事吗?我正在尝试实现正弦波的流式传输,但通过发送一组样本数据的简单示例就足够了。

回答

8

你有两种选择:matlab引擎和mex函数。注意到Matlab API是单线程的非常重要。绝对没有办法让用户可见的后台线程。充其量,UI事件有中断。

使用Matlab引擎,您的应用程序是一个使用Matlab作为附加库的C++应用程序。您可以从C++调用Matlab函数,但是您必须确保只有一个线程在任何时间点访问Matlab。所以,你可以有一个线程,通过来自应用程序其余部分的输入队列向Matlab提供数据。 C++可以拥有尽可能多的线程,但只有一个可以与Matlab交互。

另一种方法是让Matlab控制主应用程序,并在需要更多数据时调用C++代码。 C++代码充当了Matlab的插件。 C++代码可以拥有尽可能多的线程,但是当你的m文件调用它时,Matlab会轮询C++。查阅有关MEX功能的文件。

+0

谢谢!这清除了它,至少有一点,所以我可以开始。 – 2009-07-02 14:00:33

相关问题