主要内容

mxCreateNumericArray (C)

N 维数值数组

C 语法

#include "matrix.h"
mxArray *mxCreateNumericArray(mwSize ndim, const mwSize *dims,
    mxClassID classid, mxComplexity ComplexFlag);

描述

使用 mxCreateNumericArray 创建一个 N 维 mxArray。数据元素具有由 classid 指定的数值数据类型。

mxCreateNumericArraymxCreateDoubleMatrix 的区别如下:

  • mxCreateDoubleMatrix 中的所有数据元素均为双精度浮点数。mxCreateNumericArray 中的数据元素可以是任何数值类型,包括不同整数精度。

  • mxCreateDoubleMatrix 仅创建二维数组。mxCreateNumericArray 可以创建二维或更多维的数组。

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

下表显示等效于 MATLAB 类的 C classid 值。

MATLAB 类名

C classid

int8

mxINT8_CLASS

uint8

mxUINT8_CLASS

int16

mxINT16_CLASS

uint16

mxUINT16_CLASS

int32

mxINT32_CLASS

uint32

mxUINT32_CLASS

int64

mxINT64_CLASS

uint64

mxUINT64_CLASS

single

mxSINGLE_CLASS

double

mxDOUBLE_CLASS

完成使用 mxArray 后,请调用 mxDestroyArraymxDestroyArray 函数将释放 mxArray 及其相关联的实部和虚部元素。

输入参数

全部展开

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

维度数组,指定为 const mwSize *

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

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

类标识符,指定为 mxClassID 枚举。classid 确定数值数据在内存中的表示方式。例如,mxCreateNumericMatrixmxINT16_CLASS 值存储为 16 位有符号整数。

复数数组指示符,指定为 mxComplexity 值。

对于使用 mex -R2018a 命令编译的应用程序,该函数将每个数据元素初始化为 0

对于所有其他 mex 版本特定的编译选项,该函数会设置 pr 数组中的每个元素。如果 ComplexFlagmxCOMPLEX,则该函数会将 pi 数组设置为 0

输出参量

全部展开

指向类型为 classidmxArray 的指针,指定为 mxArray *

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

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

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

示例

要打开示例,请输入:

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

其中,filename 为:

要打开示例,请输入:

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

其中,filename 为:

版本历史记录

在 R2006a 之前推出