Числовой массив N-D
#include "matrix.h" mxArray *mxCreateNumericArray(mwSize ndim, const mwSize *dims, mxClassID classid, mxComplexity ComplexFlag);
#include "fintrf.h" mwPointer mxCreateNumericArray(ndim, dims, classid, ComplexFlag) mwSize ndim mwSize dims(ndim) integer*4 classid, ComplexFlag
ndim
Количество размерностей. Если вы задаете значение для ndim
, который является меньше чем 2, mxCreateNumericArray
автоматически определяет номер размерностей к 2.
dims
Массив размерностей. Каждый элемент в массиве размерностей содержит размер массива в той размерности. Например, в C, установке dims[0]
к 5 и dims[1]
к 7 устанавливает 5
-by-7
mxArray
. На Фортране установка dims(1)
к 5
и dims(2)
к 7
устанавливают 5
-by-7
mxArray
. Обычно в массиве dims
существуют элементы ndim
.
classid
Идентификатор для класса массива, который определяет путь числовые данные, представлен в памяти. Например, определение mxINT16_CLASS
в C заставляет каждую часть числовых данных в mxArray
быть представленной как 16-битное целое число со знаком. На Фортране используйте функциональный mxClassIDFromClassName
, чтобы получить значение classid
на имя класса MATLAB®. Смотрите раздел Description для получения дополнительной информации.
ComplexFlag
Если mxArray
, который вы создаете, должен содержать мнимые данные, установить ComplexFlag
на mxCOMPLEX
в C (1
на Фортране). В противном случае установите ComplexFlag
на mxREAL
в C (0
на Фортране).
Указатель на созданный mxArray
, в случае успеха. Если неудачный в автономном (нефайл MEX) приложение, возвращает NULL
в C (0
на Фортране). Если неудачный в файле MEX, файл MEX отключает и возвращает управление в посдказку MATLAB. Функция неудачна, когда существует недостаточно свободного пространства "кучи", чтобы создать mxArray
.
Вызовите mxCreateNumericArray
, чтобы создать N-мерный mxArray
, в котором все элементы данных имеют тип числовых данных, заданный classid
. После создания mxArray
mxCreateNumericArray
инициализирует все свои действительные элементы данных к 0. Если ComplexFlag
равняется mxCOMPLEX
в C (1
на Фортране), mxCreateNumericArray
также инициализирует все свои элементы мнимых данных к 0. mxCreateNumericArray
отличается от mxCreateDoubleMatrix
можно следующим образом:
Все элементы данных в mxCreateDoubleMatrix
с двойной точностью, числа с плавающей запятой. Элементы данных в mxCreateNumericArray
могут быть любым числовым типом, включая различную целочисленную точность.
mxCreateDoubleMatrix
может создать двумерные массивы только; mxCreateNumericArray
может создать массивы двух или больше размерностей.
mxCreateNumericArray
выделяет динамическую память, чтобы сохранить созданный mxArray
. Когда вы закончите с созданным mxArray
, вызовите mxDestroyArray
, чтобы освободить его память.
MATLAB автоматически удаляет любые запаздывающие одноэлементные размерности, заданные в аргументе dims
. Например, если ndim
равняется 5
, и dims
равняется [4 1 7 1 1]
, то полученный массив имеет размерности 4
-by-1-by-
7
.
Следующая таблица показывает значения classid
C и типы данных Фортрана, которые эквивалентны классам MATLAB.
Имя класса MATLAB |
C значение |
Тип Фортрана |
---|---|---|
|
|
|
|
| |
|
|
|
|
| |
|
|
|
|
| |
|
|
|
|
| |
|
|
|
|
|
|
См. следующие примеры в matlabroot / extern / examples / refbook.
См. следующие примеры в matlabroot / extern / examples / mx.
mxClassId
, mxClassIdFromClassName
, mxComplexity
, mxDestroyArray
, mxCreateUninitNumericArray
, mxCreateNumericMatrix