Массив ячеек N-D
#include "matrix.h" mxArray *mxCreateCellArray(mwSize ndim, const mwSize *dims);
#include "fintrf.h" mwPointer mxCreateCellArray(ndim, dims) mwSize ndim mwSize dims(ndim)
ndim
Количество размерностей в созданной ячейке. Например, чтобы создать трехмерную ячейку mxArray
, установите ndim
на 3.
dims
Массив размерностей. Каждый элемент в массиве размерностей содержит размер mxArray
в той размерности. Например, в C, установка dims[0]
к 5
и dims[1]
к 7
устанавливают 5
-by-7
mxArray
. На Фортране установка dims(1)
к 5
и dims(2)
к 7
устанавливают 5
-by-7
mxArray
. Обычно в массиве dims
существуют элементы ndim
.
Указатель на созданный mxArray
, в случае успеха. Если неудачный в автономном (нефайл MEX) приложение, возвращает NULL
в C (0
на Фортране). Если неудачный в файле MEX, файл MEX отключает и возвращает управление в подсказку MATLAB®. Функция неудачна, когда существует недостаточно свободного пространства "кучи", чтобы создать mxArray
.
Используйте mxCreateCellArray
, чтобы создать ячейку mxArray
с размером, заданным ndim
и dims
. Например, в C, чтобы установить трехмерную ячейку mxArray
, имеющий размерности 4
-by-8-by-
7
, установите:
ndim = 3; dims[0] = 4; dims[1] = 8; dims[2] = 7;
На Фортране, чтобы установить трехмерную ячейку mxArray
, имеющий размерности 4
-by-8-by-
7
, установите:
ndim = 3; dims(1) = 4; dims(2) = 8; dims(3) = 7;
Созданная ячейка mxArray
безлюдна; mxCreateCellArray
инициализирует каждую ячейку к NULL
. Чтобы поместить данные в ячейку, вызовите mxSetCell
.
MATLAB автоматически удаляет любые запаздывающие одноэлементные размерности, заданные в аргументе dims
. Например, если ndim
равняется 5
, и dims
равняется [4 1 7 1 1]
, то полученный массив имеет размерности 4
-by-1-by-
7
.