主要内容

mxSetDimensions (Fortran)

R2026b

修改维数和每个维度的大小

Fortran 语法

#include "fintrf.h"
integer*4 mxSetDimensions(pm, dims, ndim)
mwPointer pm
mwSize ndim
mwSize dims(ndim)

描述

mxSetDimensions 在成功时返回 0,在失败时返回 1。mxSetDimensions 分配堆空间以保留输入大小数组。因此,增加维数可能导致系统耗尽堆空间(尽管这种情况不太可能出现)。

调用 mxSetDimensions 以重构现有 mxArray。mxSetDimensions 类似于 mxSetM 和 mxSetN;但是,mxSetDimensions 为重构具有两个以上维度的 mxArray 提供更大的控制权。

mxSetDimensions 不会为 pr 或 pi 数组分配或取消分配任何空间。因此,如果您对 mxSetDimensions 的调用会增大 mxArray 中的元素数,请相应地扩大 pr(以及 pi,如果存在)数组。

如果您对 mxSetDimensions 的调用会减小 mxArray 中的元素数,则可以选择使用 mxRealloc 缩小 pr 和 pi 数组的大小。

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

输入参数

全部展开

指向 mxArray 数组的指针,指定为 mwPointer。该函数不支持指向稀疏矩阵的指针。

维度数组。维度数组中的每个元素包含该维度中数组的大小,指定为 mwSize。例如,在 Fortran 中,将 dims(1) 设置为 5 并将 dims(2) 设置为 7 会建立 5×7 mxArray。在大多数情况下,dims 数组中有 ndim 个元素。

维数,指定为 mwSize。

示例

要打开示例,请输入:

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

其中,filename 为:

版本历史记录

在 R2006a 之前推出