4

我对 MATLAB 完全陌生,我想知道从 C++ 文件流式传输数据的选项是什么。

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

4

1 回答 1

8

您有两个选择:matlab 引擎和 mex 函数。值得注意的是,Matlab API 是单线程的。绝对没有办法让用户可见的后台线程。充其量,UI 事件有中断。

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

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

于 2009-07-02T12:17:25.170 回答