主要内容

mxCreateStructArray (C)

N 维结构体数组

C 语法

#include "matrix.h"
mxArray *mxCreateStructArray(
    mwSize ndim, const mwSize *dims, int nfields, const char **fieldnames);

描述

调用 mxCreateStructArray 以创建一个未填充的结构体 mxArray。结构体 mxArray 的每个元素包含相同数量的字段(在 nfields 中指定)。每个字段都有名称,该名称在 fieldnames 中指定。MATLAB® 结构体 mxArray 在概念上等效于 C 语言中的 structs 数组。

每个字段保留一个初始化为 NULLmxArray 指针。调用 mxSetFieldmxSetFieldByNumber 以在字段中放置非 NULLmxArray 指针。

该函数会自动删除在 dims 参量中指定的尾部单一维度。例如,如果 ndim 等于 5dims 等于 [4 1 7 1 1],则生成的数组的维度为 4×1×7

当您完成使用 mxArray 来释放 mxArray 及其关联元素时,请调用 mxDestroyArray

输入参数

全部展开

维数,指定为 mwSize。如果 ndim 小于 2,则 mxCreateStructArray 将维数设置为 2。

维度数组,指定为 const mwSize 的数组。

维度数组中的每个元素包含该维度中数组的大小。例如,要创建一个 5×7 数组,请将 dims[0] 设置为 5,将 dims[1] 设置为 7。

通常,dims 数组包含 ndim 个元素。

每个元素中的字段数,指定为 int

一个或多个字段名称,指定为 const char **

字段名称必须为有效的 MATLAB 标识符,这意味着它们不能为 NULL 或为空。字段名称区分大小写。要确定字段名称的最大长度,请使用 namelengthmax 函数。

输出参量

全部展开

指向 mxArray 的指针,指定为 mxArray *

当没有足够的可用堆空间来创建 mxArray 时,该函数不会成功执行。

  • MEX 文件 - 函数将终止 MEX 文件并将控制权返回给 MATLAB 提示符。

  • 独立(非 MEX 文件)应用程序 - 函数将返回 NULL

示例

要打开示例,请输入:

edit([fullfile(matlabroot,"extern","examples","mx","filename")]);

其中,filename 为:

版本历史记录

在 R2006a 之前推出