主要内容

clibConvertArray

MATLAB 基本数组或结构体数组转换为 C++ 对象的 MATLAB 数组

说明

cArray = clibConvertArray(elementTypeName,A) 将 MATLAB® 数组 A 转换为 clib 数组,这是一个 MATLAB 对象,表示类型为 elementTypeName 的 C++ 对象。cArray 的维度与 A 相同。cArray 的每个元素都由 A 的对应元素初始化。

clibArray 一样,仅当库需要该类型时,才能构造数组。

cArray 的内存归 MATLAB 所有。要释放该内存,请调用 clibRelease

示例

示例

全部折叠

假设您有一个与 C++ 库 libname 的接口。转换一个 MATLAB 双精度数组。

a = [1 2 3 4];
arr = clibConvertArray("clib.libname.Double", a);
class(arr)
ans =
       'clib.array.libname.Double'

假设您有库 libname,其中包含由以下代码定义的名为 MyStruct 的 C++ 结构体。

struct MyStruct {
    double a;
    };

您要将此 MATLAB 结构体数组 mArray 传递给该库。

mArray(1).a = 5;
mArray(2).a = 10;

创建一个名为 myStructArrayclib.array 对象。将此对象用于类型为 clib.libname.MyStruct 的参量。

myStructArray = clibConvertArray("clib.libname.MyStruct",mArray);
class(myStructArray)
ans =
       'clib.array.libname.MyStruct'

输入参数

全部折叠

C++ 类型,指定为字符串或字符向量。有关详细信息,请参阅C++ to MATLAB Data Type Mapping。支持的类型有:

MATLAB 将基本 C++ 类型的名称转换为大驼峰式命名法。例如,C++ 类型 signed intelementTypeNameSignedInt

该类型是完全限定的 C++ 类型名称。例如,如果库 libname 定义了类 myclass,则 elementTypeNameclib.libname.myclass

不支持 C++ 类名称。

示例: clib.libname.Double

数据类型: char | string

MATLAB 数组,指定为 MATLAB 数值类型。

版本历史记录

在 R2020a 中推出

全部展开