主要内容

c++ API墨西哥人

c++的MEX API与C的MEX API不兼容C MEX文件应用程序. 不能在MEX文件中混合使用这些API。

C++MEXAPI使您能够创建利用C++11特性的应用程序,如移动语义、异常处理和内存管理。

matlab:墨西哥人:函数 c++ MEX函数的基类
matlab::mex::ArgumentList 用于输入和输出c++ MEX函数的容器
matlab:引擎::MATLABEngine 定义引擎API的类

matlab:墨西哥人:函数

所有MEX文件实现都是派生自matlab:墨西哥人:函数

std::shared_ptrgetEngine() 获取指向MATLABEngine对象
空白mexLock () 防止从内存中清除MEX文件
空白mexUnLock () 允许从内存中清除MEX文件
std::u16string getFunctionName() 获取当前MEX函数的名称

matlab::mex::ArgumentList

的MEX函数参数操作符()MexFunctionmatlab::mex::ArgumentList容器。ArgumentList是数组的基础集合的完整范围。的ArgumentList对象支持以下函万博1manbetx数。

运营商[] 使能够[]对象的元素索引ArgumentList
开始() 开始迭代器。
结束() 迭代器。
尺寸() 返回参数列表中的元素个数。使用此函数检查呼叫站点指定的输入和输出数量。
空的() 返回一个逻辑值,指示参数列表是否为空(大小()= = 0).

c++引擎API

使用MATLAB®使用matlab:引擎::MATLABEngineAPI将在下面的部分中描述。调用matlab:引擎::MATLABEngine方法返回的共享指针matlab::mex::Function::getEngine功能。例如:

std::shared_ptrmatlabPtr=getEngine();

使用此指针调用引擎函数。例如:

matlabPtr - >函数宏指令(…);

调用引擎只在与MexFunction类。

matlab::引擎::MATLABEngine::函数宏指令 用参数调用MATLAB函数
matlab::引擎::MATLABEngine:: fevalAsync 异步调用带参数和返回值的MATLAB函数。
matlab::引擎::MATLABEngine:: eval 在基本工作空间中评估MATLAB语句
matlab::engine::MATLABEngine::evalAsync 在基本工作空间中异步地评估MATLAB语句
matlab::engine::MATLABEngine::getVariable 从MATLAB基础或全局工作区获取变量
matlab::引擎::MATLABEngine:: getVariableAsync 从MATLAB基础或全局工作区异步获取变量
matlab::引擎::MATLABEngine:: setVariable 将变量放入MATLAB库或全局工作区中
matlab::引擎::MATLABEngine:: setVariableAsync 将变量异步地放入MATLAB库或全局工作区中
matlab::engine::MATLABEngine::getProperty 获取对象属性
matlab::引擎::MATLABEngine:: getPropertyAsync 异步获取对象属性
matlab::引擎::MATLABEngine:: setProperty 设置对象属性
matlab::engine::MATLABEngine::setPropertyAsync 异步设置对象属性

matlab::引擎::MATLABEngine::函数宏指令

std::vector feval(const std::u16string &function, const size_t numReturned, const std::vector &args, const std::shared_ptr &output = std::shared_ptr,const std::shared_ptr &error = std::shared_ptr())
matlab::数据::数组函数宏指令(const std:: u16string函数,const std::向量数组< matlab::数据::> args, const std::要查看< matlab::引擎::StreamBuffer >和输出= std::要查看< matlab::引擎::StreamBuffer > (), const std::要查看< matlab::引擎::StreamBuffer > & error = std::要查看< matlab::引擎::StreamBuffer > ())
matlab::engine::StreamBuffer> &output = std::shared_ptr(), const std::shared_ptr &error = std::shared_ptr())
结果类型feval(const std::u16string&function,const std::shared\u ptr&输出,const std::shared\u ptr&错误,RhsArgs&&…RhsArgs)
结果类型feval(常量std::u16string&function,RhsArgs&…RhsArgs)

描述

从MEX函数调用MATLAB函数。使用函数宏指令使用从MEX函数传递的参数调用MATLAB函数,并将结果从MATLAB返回给MEX函数。

输入和输出是由MATLAB数据API. 还有一种语法支持原生C++类型。万博1manbetx

参数

const std:: u16string函数

要计算的MATLAB函数或脚本的名称。将名称指定为std::u16string.也可以将此参数指定为std:: string

const size_t nlhs

返回值的数量。

const std::向量< matlab::数据::>数组参数

中的多个输入参数传递给MATLAB函数std::向量.在MATLAB中将矢量转换为列数组。

常量matlab::数据::数组和参数

传递给MATLAB函数的单一输入参数。

const std::shared_ptr&output=std::shared_ptr()

用于存储MATLAB函数标准输出的流缓冲区。

const std::shared_ptr&error=std::shared_ptr()

用于存储来自MATLAB函数的错误消息的流缓冲区。

RHSARG和。。。rhsArgs

用于函数输入的本地c++数据类型。函数宏指令接受这些c++数据类型的标量输入:保龄球,int8_t,int16_t,int32_t,int64_t,uint8\u t,uint16_t,uint32\u t,uint64_t,浮动,

返回值

std::向量数组< matlab::数据::>

MATLAB函数返回的输出。

matlab::data::Array

从MATLAB函数返回的单个输出。

ResultType

作为用户指定类型的MATLAB函数返回的输出。可以是一个std::元组如果返回多个参数。

例外情况

matlab:引擎::MATLABException

函数中存在MATLAB运行时错误。

matlab:引擎::TypeConversionException

MATLAB函数的结果不能转换为指定的类型。

matlab:引擎::MATLABSyntaxException

在MATLAB函数中有一个语法错误。

有关更多信息,请参见从MEX函数调用MATLAB函数

matlab::引擎::MATLABEngine:: fevalAsync

FutureResult> fevalAsync(const std::u16string &function, const size_t numReturned, const std::vector &args, const std::shared_ptr &output = std::shared_ptr(),const std::shared_ptr &error = std::shared_ptr())
FutureResult < matlab::数据::数组> fevalAsync (const std:: u16string函数,const std::向量数组< matlab::数据::> args, const std::要查看< matlab::引擎::StreamBuffer >和输出= std::要查看< matlab::引擎::StreamBuffer > (), const std::要查看< matlab::引擎::StreamBuffer > & error = std::要查看< matlab::引擎::StreamBuffer > ())
FutureResultfevalAsync(const std::u16string&function,const matlab::data::Array&arg,const std::shared\u ptr&输出=std::shared\u ptr(),const std::shared\u ptr&错误=std::shared\u ptr
futurerresult  fevalAsync(const std::u16string &function, const std::shared_ptr &output, const std::shared_ptr &error, RhsArgs&&…rhsArgs)
futurerresult  fevalAsync(const std::u16string &function, RhsArgs&&…rhsArgs)

描述

异步调用带参数和返回值的MATLAB函数。的更多信息使用mexCallMATLAB进行异步请求

参数

const std:: u16string函数

要计算的MATLAB函数或脚本的名称。将名称指定为std::u16string.也可以将此参数指定为std:: string

const size_t numReturned

返回值的数目

const std::向量< matlab::数据::>数组参数

函数中的多个输入参数传递给MATLAB函数std::向量.在MATLAB中将矢量转换为列数组。

常量matlab::data::Array arg

传递给MATLAB函数的单一输入参数。

const std::shared_ptr&output=std::shared_ptr()

用于存储MATLAB函数标准输出的流缓冲区。

const std::shared_ptr&error=std::shared_ptr()

用于存储来自MATLAB函数的错误消息的流缓冲区。

RHSARG和。。。rhsArgs

用于函数输入的本地c++数据类型。函数宏指令接受这些c++数据类型的标量输入:保龄球,int8_t,int16_t,int32_t,int64_t,uint8\u t,uint16_t,uint32\u t,uint64_t,浮动,

返回值

FutureResult

AFutureResult对象,用于获取调用MATLAB函数的结果。

例外情况

没有一个

matlab::引擎::MATLABEngine:: eval

void eval(const std::u16string &statement, const std::shared_ptr &output = std::shared_ptr (), const std::shared_ptr &error = std::shared_ptr ())

描述

在调用函数工作区中,将MATLAB语句作为文本字符串计算。

参数

const std:: u16string声明

MATLAB语句进行评估

const std::要查看< matlab::引擎::StreamBuffer >和输出

用于存储MATLAB语句的标准输出的流缓冲区

const std::要查看< matlab::引擎::StreamBuffer > & error

用于存储来自MATLAB命令的错误消息的流缓冲区

例外情况

matlab:引擎::MATLABExecutionException

MATLAB语句中存在运行时错误。

matlab:引擎::MATLABSyntaxException

在MATLAB语句中有一个语法错误。

有关更多信息,请参见从MEX函数执行MATLAB语句

matlab::engine::MATLABEngine::evalAsync

futuresultevalAsync(const std::u16string&str,const std::shared_ptr&output=std::shared_ptr(),const::shared_ptr&error=std::shared_ptr

描述

异步计算一个MATLAB语句作为一个字符串。的更多信息使用mexCallMATLAB进行异步请求

参数

const std:: u16string str

MATLAB语句进行评估

const std::shared_ptr &输出

用于存储MATLAB语句的标准输出的流缓冲区。

const std::shared_ptr & error

用于存储来自MATLAB命令的错误消息的流缓冲区。

返回值

matlab:引擎::FutureResult

AFutureResult对象,用于等待MATLAB语句完成。

例外情况

没有一个

matlab::engine::MATLABEngine::getVariable

matlab::data::Array getVariable(const std::u16string &varName, WorkspaceType WorkspaceType = WorkspaceType::BASE)

描述

从MATLAB基础或全局工作区中获取一个变量。

参数

const std::u16string和varName

MATLAB工作区中变量的名称。将名称指定为std::u16string.也可以将此参数指定为std:: string

matlab::engine::WorkspaceType WorkspaceType = matlab::engine::WorkspaceType::BASE

MATLAB工作空间(BASE或GLOBAL)来获取变量。有关更多信息,请参见全球的matlab:引擎::WorkspaceType

返回值

matlab::data::Array

从MATLAB基础或全局工作空间获取的变量

例外情况

matlab:引擎::MATLABExecutionException

所请求的变量在指定的MATLAB基础或全局工作区中不存在。

有关更多信息,请参见从MEX设置和获取MATLAB变量

matlab::引擎::MATLABEngine:: getVariableAsync

futurerresult  getVariableAsync(const std::u16string &varName, WorkspaceType WorkspaceType = WorkspaceType::BASE)

描述

从MATLAB基础或全局工作区异步获取一个变量。

参数

const std::u16string和varName

在MATLAB工作空间中变量的名称。将名称指定为std::u16string.也可以将此参数指定为std:: string

WorkspaceType WorkspaceType = WorkspaceType::BASE

MATLAB工作空间(BASE或GLOBAL)来获取变量。有关更多信息,请参见全球的

返回值

matlab:引擎::FutureResult

AFutureResult对象,您可以使用该对象获取从MATLAB工作区获取的变量作为matlab.data.Array

例外情况

没有一个

matlab::引擎::MATLABEngine:: setVariable

void setVariable(const std::u16string &varName, const matlab::data::Array &var, WorkspaceType WorkspaceType = WorkspaceType::BASE)

描述

将一个变量放入MATLAB库或全局工作区中。如果在MATLAB工作空间中存在同名变量,setVariable覆盖它。

参数

const std::u16string和varName

要在MATLAB工作区中创建的变量的名称。将名称指定为std::u16string.也可以将此参数指定为std:: string

const matlab::数据::数组var

要在MATLAB工作空间中创建的变量的值。

matlab::engine::WorkspaceType WorkspaceType = matlab::engine::WorkspaceType::BASE

MATLAB工作空间(BASE或GLOBAL)将变量放入。有关更多信息,请参见全球的matlab:引擎::WorkspaceType

有关更多信息,请参见从MEX设置和获取MATLAB变量

matlab::引擎::MATLABEngine:: setVariableAsync

futurerresult  setVariableAsync(const std::u16string &varName, const matlab::data::Array var, WorkspaceType WorkspaceType = WorkspaceType::BASE)

描述

将变量异步放入MATLAB基础或全局工作空间。如果MATLAB基本工作区中存在同名变量,设置变量同步覆盖它。

参数

const std::u16string和varName

要在MATLAB工作区中创建的变量的名称。将名称指定为std::u16string.也可以将此参数指定为std:: string

const matlab::数据::数组var

要在MATLAB工作空间中创建的变量的值

WorkspaceType WorkspaceType = WorkspaceType::BASE

将变量放入MATLAB BASE或全局工作区中。有关更多信息,请参见全球的

例外情况

没有一个

matlab::engine::MATLABEngine::getProperty

matlab::data::Array getProperty(常量matlab::data::Array&objectArray,大小索引,常量std::u16string&propertyName)
getProperty(const matlab::data::Array &object, const std::u16string &propertyName)

描述

获取对象属性的值。如果对象输入参数是一个对象数组,请指定数组元素的索引,该数组元素对应于您想要获取其属性值的对象。

参数

const matlab::数据::&objectArray数组

MATLAB对象数组

const matlab::数据::数组对象

标量MATLAB对象

size_t指数

对象数组中的从零开始的索引,指定该数组中返回属性值的对象

const std::u16string和propertyName

属性的名称。将名称指定为std::u16string.也可以将此参数指定为std:: string

返回值

matlab::data::Array

指定属性的值

例外情况

matlab:引擎::MATLABExecutionException

该属性不存在。

有关更多信息,请参见MATLAB对象在MEX函数

matlab::引擎::MATLABEngine:: getPropertyAsync

matlab::engine::FutureResult getPropertyAsync(const matlab::data::Array &objectArray, size_t index, const std::u16string &propertyName)
matlab::engine::FutureResultgetPropertyAsync(常量matlab::data::Array&object,常量std::u16string&propertyName)

描述

异步获取对象属性的值。如果对象输入参数是一个对象数组,请指定数组元素的索引,该数组元素对应于您想要获取其属性值的对象。

参数

const matlab::数据::&objectArray数组

MATLAB对象数组

const matlab::数据::数组对象

标量MATLAB对象

size_t指数

对象数组中的从零开始的索引,指定该数组中返回属性值的对象

const std::u16string和propertyName

属性的名称。将名称指定为std::u16string.也可以将此参数指定为std:: string

返回值

matlab:引擎::FutureResult

matlab:引擎::FutureResult对象,该对象用于同步操作。

例外情况

没有一个

matlab::引擎::MATLABEngine:: setProperty

void setProperty(matlab::data::Array &objectArray, size_t index, const std::u16string &propertyName, const matlab::data::Array &propertyValue)
void setProperty(matlab::data::Array &object, const std::u16string &propertyName, const matlab::data::Array &propertyValue)

描述

设置对象属性的值。如果对象输入参数是一个对象数组,请指定数组元素的索引,该数组元素对应于要设置其属性值的对象。

参数

matlab::数据::&objectArray数组

MATLAB对象数组

matlab::数据::数组对象

标量MATLAB对象

size_t指数

对象数组中的从零开始的索引,指定该数组中设置了属性值的对象

const std::u16string和propertyName

要设置的属性的名称。将名称指定为std::u16string.也可以将此参数指定为std:: string

常量matlab::数据::数组和属性值

分配给财产的价值

例外情况

matlab:引擎::MATLABExecutionException

该属性不存在。

有关更多信息,请参见MATLAB对象在MEX函数

matlab::engine::MATLABEngine::setPropertyAsync

FutureResult setPropertyAsync(matlab::data::Array &objectArray, size_t index, const std::u16string &propertyName, const matlab::data::Array &propertyValue)
FutureResultsetPropertyAsync(matlab::data::Array&object,const std::u16string&propertyName,const matlab::data::Array&propertyValue)

描述

异步设置对象属性的值。如果对象输入参数是一个对象数组,请指定数组元素的索引,该数组元素对应于要设置其属性值的对象。

参数

matlab::数据::&objectArray数组

MATLAB对象数组

matlab::数据::数组对象

标量MATLAB对象

size_t指数

对象数组中的从零开始的索引,指定该数组中设置了属性值的对象

const std::u16string和propertyName

要设置的属性的名称。将名称指定为std::u16string.也可以将此参数指定为std:: string

常量matlab::数据::数组和属性值

分配给财产的价值。

例外情况

没有一个

异常类

异常 导致

matlab:引擎::EngineException

函数中存在MATLAB运行时错误或MATLAB无法启动。

matlab:引擎::MATLABSyntaxException

在MATLAB函数中有一个语法错误。

matlab:引擎::MATLABExecutionException

在MATLAB函数或语句中有一个MATLAB运行时错误。

matlab:引擎::TypeConversionException

MATLAB函数的结果不能转换为指定的类型

有关更多信息,请参见捕捉MEX函数中的异常

相关的话题