MATLAB®Engine API for c++允许c++程序与MATLAB进行同步或异步交互。万博1manbetx支持的操作包括:
MATLAB开始。
连接到本地机器上的MATLAB共享会话。
用c++传递的输入参数和MATLAB返回的输出变量调用MATLAB函数。
在MATLAB基本工作区中评估MATLAB语句。
传递变量从c++到MATLAB,从MATLAB到c++。
MATLAB Engine API for c++包含在MATLAB产品中。有关完整的API,请参见c++引擎API.
MATLAB Engine API for c++由一组c++头文件和C运行时共享库组成。名称空间matlab:发动机
包含几个实用函数和一组c++类。
通过设置您的构建和运行时环境,开始使用c++的MATLAB Engine API。确保安装了受支持的编译器。万博1manbetx使用MATLAB墨西哥人
命令来设置环境和构建c++应用程序。您还可以配置IDE以构建使用Engine API的c++应用程序。有关如何做到这一点的信息,请参见构建c++引擎程序.
引擎API支持使用MATLAB万博1manbetx数据API。这个API为在MATLAB之外运行的应用程序提供了一种使用MATLAB数据的方法。有关此API的更多信息,请参见MATLAB数据API.
下面是一些简单的c++引擎代码,展示了用于执行MATLAB命令的基本元素。这段代码将数据数组向量传递给MATLAB函数,movsum
,并返回结果。这段c++代码在MATLAB中执行相当于这些语句的语句。
A = [4 8 6 -1 -2 -3 -1 3 4 5];M = movsum (3“端点”,“丢弃”);
为MATLAB引擎和MATLAB数据数组添加头文件。
#include "MatlabEngine.hpp" #include "MatlabDataArray.hpp"
启动一个MATLAB会话,并获得一个唯一的指向实例的指针。
std::unique_ptrmatlabPtr = startMATLAB();
创建一个MATLAB数据数组工厂来构造数据类型matlab:引擎::MATLABEngine
成员函数。
matlab::数据::ArrayFactory工厂;
为MATLAB函数的输入参数定义一个MATLAB数据数组向量。每个参数都是vector中的一个数组。
//为参数创建一个MATLAB数据数组的向量std::vector< MATLAB::data::Array> args({factory. data::Array;createArray({1, 10}, {4, 8, 6, -1, -2, -3, -1, 3, 4, 5}), factory. createcharar (3), factory.createCharArray("Endpoints"), factory.createCharArray("discard")});
调用MATLABmovsum
函数使用MATLABEngine:函数宏指令
成员函数。将返回的结果定义为适当类型的MATLAB数据数组。
//调用带参数的MATLAB函数并返回结果MATLAB::data::TypedArrayresult = matlabPtr->feval(u"movsum", args);
matlab:引擎::MATLABEngine
|matlab:: data:: ArrayFactory