代码之家  ›  专栏  ›  技术社区  ›  S.P

Matlab中的数据流与来自C++可执行程序的输入数据

  •  4
  • S.P  · 技术社区  · 15 年前

    我是全新的Matlab,我想知道我的选择是什么数据流从一个C++文件。

    我听说过用matlab“engine”来实现这个目的,还有一些方法,比如engputvariable等,但是有人能给我一个详细的例子来说明如何实现它吗?我正试图实现一个正弦波流,但是通过发送一组数据样本的简单示例就足够了。

    1 回复  |  直到 15 年前
        1
  •  8
  •   Mr Fooz    15 年前

    您有两个选项:matlab引擎和mex函数。需要注意的是,MatlabAPI是单线程的。绝对没有办法让用户看到后台线程。最多,用户界面事件有中断。

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

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