主要内容

MATLABc++数组的对象

MATLAB®提供界面,clib.array,它封装了c++本机数组和std::向量类型。这个词clib数组指这些c++类型的MATLAB表示。

MATLAB CLIB阵列仅在相应的C ++本机阵列或std::向量由支持的C ++构造函金宝app数输入和输出参数和数据成员使用。提供的标题必须包含元素类型的定义。MATLAB必须支持构建体,在构建界面时不会金宝app删除。

创建MATLABc++对象数组

创建一个MATLAB对象,表示c++原生数组或std::向量类型,调用MATLABclibArray函数。例如,假设您的图书馆库名定义一个类myclass.在Matlab中,您将此课程称为clib.libname.myclass.创建五个数组myclass对象,使用下面的语法:

myclassArray = clibArray ('clib.libname.myclass'5);

MATLAB阵列的类型myclassarray.clib.array.libname.myclass..访问一个元素myclassarray.,使用MATLAB标引。例如,要访问第一个元素,请使用以下语法:

e = myclassarray(1)

元素类型为clib.libname.myclass

或者,如果元素类型是基本类型、具有默认构造函数的用户定义类或标准字符串类型,则调用clib.array构造函数。

要为用户定义的类创建包含五个元素的数组,请键入:

myclassarray = clib.array.libname.myclass(5)

要从基本类型创建数组,您必须知道元素类型。有关更多信息,请参见std::向量< T >整数类型std::向量T > <浮点类型表中c++到MATLAB的数据类型映射.例如,如果c++类型是STD :: Vector ,则MATLAB元素类型为clib.libname.Int.要创建一个包含五个元素的数组,输入:

myintarray = clib.array.libname.int(5)

要从标准字符串类型创建数组,请参见STD :: Vector 字符串类型元素类型信息的表格。例如,如果c++类型是std::向量< std:: string >,则MATLAB元素类型为clib.libname.std.String.要创建一个包含五个元素的数组,输入:

myStringArray = clib.array.libname.std.String (5)

请注意

不支持将C ++对象保存到Mat文件中。金宝app

请注意

不能使用方括号创建c++对象数组。

转换MATLAB数组到c++数组对象

您可以使用现有的MATLAB数组作为c++数组对象。调用clibConvertArray函数。

MATLABC ++对象数组属性

MATLAB数组创建clibArray或者clibConvertArray这些属性。

财产

类型 访问

描述

双矢量 只读

C ++阵列的尺寸

可调整大小

逻辑标量 只读

  • 真的的东西/删除元素允许的

  • 不允许添加/删除元素

MATLABC ++对象数组方法

MATLAB数组创建clibArray或者clibConvertArray这些方法。

方法

签名

描述

附加

追加((元素))

将可选指定的元素添加到数组的末尾。

对于原始的MATLAB clib数组,如果没有输入参数,则追加一个零值。

对于类类型的MATLAB clib数组,如果没有输入参数,则追加类类型的默认构造函数。如果删除类类型默认构造函数,则会发生运行时错误。

removeLast

removeLast

删除数组的最后一个元素。如果MATLAB clib数组为空,则会发生运行时错误。

转换为双精度。

int8

int8

转换为int8

uint8

uint8

转换为uint8

int16

int16

转换为int16

uint16

uint16

转换为uint16

int32

int32

转换为int32

uint32

uint32

转换为uint32

int64

int64

转换为int64

uint64

uint64

转换为uint64

逻辑

逻辑

将数值转换为逻辑值。

将基本类型的c++本机数组视为MATLAB基本类型

默认情况下,MATLAB用MATLAB表示基本类型的c++本地数组clib.array类型。如果您需要使用输出保留基本MATLAB数组类型,请与界面构建ReturnCArrays参数设置为.有关更多信息,请参见clibgen.generateLibraryDefinition

内存管理

使用的Matlab阵列的内存clibArray或者clibConvertArray为MATLAB所有。要释放记忆,就呼唤clibRelease

另请参阅

||

相关话题