Измените количество размерностей и размер каждой размерности
#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
- 7
mxArray
. На Фортране, установке dims(1)
к 5
и dims(2)
к 7
устанавливает 5
- 7
mxArray
. В большинстве случаев существует ndim
элементы в dims
массив.
ndim
Количество размерностей
0 на успехе и
1
onFailure. mxSetDimensions
выделяет пространство "кучи", чтобы содержать входной массив размера. Таким образом, это возможно (хотя вряд ли), что увеличение числа размерностей может заставить систему исчерпывать пространство "кучи".
Вызовите mxSetDimensions
изменять существующий mxArray
. mxSetDimensions
похож на mxSetM
и mxSetN
; однако, mxSetDimensions
обеспечивает большее управление для изменения mxArray
это имеет больше чем две размерности.
mxSetDimensions
не выделяет или освобождает любой пробел для pr
или pi
массивы. Так, если ваш вызов mxSetDimensions
увеличивает число элементов в mxArray
, затем увеличьте pr
(и pi
, если это существует), массивы соответственно.
Если ваш вызов mxSetDimensions
уменьшает число элементов в mxArray
, затем можно опционально уменьшать размер pr
и pi
массивы с помощью mxRealloc
.
MATLAB® автоматически удаляет любые запаздывающие одноэлементные размерности, заданные в dims
аргумент. Например, если ndim
равняется 5
и dims
равняется [4 1 7 1 1]
, затем полученный массив имеет размерности 4
- 1
- 7
.