Измените количество размерностей и размер каждой размерности
#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.
См. следующие примеры в matlabroot / extern / examples / mx.