mxCreateNumericArray (C и Фортран)

Числовой массив N-D

Синтаксис C

#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 значение classid

Тип Фортрана

int8

mxINT8_CLASS

BYTE

uint8

mxUINT8_CLASS

 

int16

mxINT16_CLASS

INTEGER*2

uint16

mxUINT16_CLASS

 

int32

mxINT32_CLASS

INTEGER*4

uint32

mxUINT32_CLASS

 

int64

mxINT64_CLASS

INTEGER*8

uint64

mxUINT64_CLASS

 

единственный

mxSINGLE_CLASS

REAL*4
COMPLEX*8

'double'

mxDOUBLE_CLASS

REAL*8
COMPLEX*16

Примеры

См. следующие примеры в matlabroot / extern / examples / refbook.

См. следующие примеры в matlabroot / extern / examples / mx.

Представлено до R2006a

Была ли эта тема полезной?