Измените количество размерностей и размер каждой размерности
#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, тогда вы можете опционально уменьшить размер pr и pi массивы, использующие mxRealloc.
MATLAB® автоматически удаляет все конечные синглтонные размерности, указанные в dims аргумент. Для примера, если ndim равен 5 и dims равен [4 1 7 1 1], тогда получившийся массив имеет размерности 4-by- 1-by- 7.