Измените количество размерностей и размер каждой размерности
#include "matrix.h" int mxSetDimensions(mxArray *pm, const mwSize *dims, mwSize ndim);
#include "fintrf.h" integer*4 mxSetDimensions(pm, dims, ndim) mwPointer pm mwSize ndim mwSize dims(ndim)
pm
Указатель на mxArray
dims
Массив размерностей. Каждый элемент в массиве размерностей содержит размер массива в той размерности. Например, в C, установка dims[0]
к 5
и dims[1]
к 7
устанавливают 5
-by-7
mxArray
. На Фортране установка dims(1)
к 5
и dims(2)
к 7
устанавливают 5
-by-7
mxArray
. В большинстве случаев в массиве dims
существуют элементы ndim
.
ndim
Количество размерностей
0
на успехе и 1
на отказе. mxSetDimensions
выделяет пространство "кучи", чтобы содержать входной массив размера. Таким образом, это возможно (хотя вряд ли), что увеличение числа размерностей может заставить систему исчерпывать пространство "кучи".
Вызовите mxSetDimensions
, чтобы изменить существующий mxArray
. mxSetDimensions
похож на mxSetM
и mxSetN
; однако, mxSetDimensions
обеспечивает большее управление для изменения mxArray
, который имеет больше чем две размерности.
mxSetDimensions
не выделяет или освобождает любой пробел для массивов pi
или pr
. Так, если ваш вызов mxSetDimensions
увеличивает число элементов в mxArray
, то увеличьте pr
(и pi
, если это существует), массивы соответственно.
Если ваш вызов mxSetDimensions
уменьшает число элементов в mxArray
, то можно опционально уменьшать размер pr
и массивов pi
с помощью mxRealloc
.
MATLAB® автоматически удаляет любые запаздывающие одноэлементные размерности, заданные в аргументе dims
. Например, если ndim
равняется 5
, и dims
равняется [4 1 7 1 1]
, то полученный массив имеет размерности 4
-by-1-by-
7
.