MATLAB 中的数据流,输入数据来自 C++ 可执行文件
Posted
技术标签:
【中文标题】MATLAB 中的数据流,输入数据来自 C++ 可执行文件【英文标题】:Data streaming in MATLAB with input data coming in from a C++ executable 【发布时间】:2009-07-01 23:16:07 【问题描述】:我是 MATLAB 的新手,我想知道我有哪些选项可以从 C++ 文件流式传输数据。
我听说为此目的使用 MATLAB“引擎”,以及一些方法,如 engPutVariable 等,但是有人可以给我一个完整的例子来说明如何去做吗?我正在尝试实现流式传输正弦波,但是通过发送一组样本数据的简单示例就足够了。
【问题讨论】:
【参考方案1】:您有两个选择:matlab 引擎和 mex 函数。值得注意的是,Matlab API 是单线程的。绝对没有办法让用户可见的后台线程。充其量是 UI 事件的中断。
使用 Matlab 引擎,您的应用程序是一个使用 Matlab 作为插件库的 C++ 应用程序。您可以从 C++ 调用 Matlab 函数,但您必须确保在任何时间点只有一个线程访问 Matlab。因此,您可以有一个线程从来自应用程序其余部分的输入队列向 Matlab 提供数据。 C++ 可以拥有任意数量的线程,但只有一个可以与 Matlab 交互。
另一种方法是让 Matlab 控制主应用程序,让它在需要更多数据时调用 C++ 代码。 C++ 代码充当 Matlab 的插件。 C++ 代码可以有尽可能多的线程,但是当你的 m 文件调用它时,Matlab 会轮询 C++。查看有关 MEX 函数的文档。
【讨论】:
谢谢!这至少可以清除一点,这样我就可以开始了。以上是关于MATLAB 中的数据流,输入数据来自 C++ 可执行文件的主要内容,如果未能解决你的问题,请参考以下文章