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

2D числовая матрица

Синтаксис C

#include "matrix.h"
mxArray *mxCreateNumericMatrix(mwSize m, mwSize n, 
  mxClassID classid, mxComplexity ComplexFlag);

Синтаксис языка ФОРТРАН

#include "fintrf.h"
mwPointer mxCreateNumericMatrix(m, n, classid, ComplexFlag)
mwSize m, n
integer*4 classid, ComplexFlag

Аргументы

m

Количество строк

n

Количество столбцов

classid

Идентификатор для класса массива, который определяет путь числовые данные, представлен в памяти. Например, определение mxINT16_CLASS в C заставляет каждую часть числовых данных в mxArray быть представленной как 16-битное целое число со знаком. На Фортране используйте функциональный mxClassIDFromClassName, чтобы получить значение classid на имя класса MATLAB®.

ComplexFlag

Если mxArray, который вы создаете, должен содержать мнимые данные, установить ComplexFlag на mxCOMPLEX в C (1 на Фортране). В противном случае установите ComplexFlag на mxREAL в C (0 на Фортране).

Возвращается

Указатель на созданный mxArray, в случае успеха. Если неудачный в автономном (нефайл MEX) приложение, возвращает NULL в C (0 на Фортране). Если неудачный в файле MEX, файл MEX отключает и возвращает управление в посдказку MATLAB. Функция неудачна, когда существует недостаточно свободного пространства "кучи", чтобы создать mxArray.

Описание

Вызовите mxCreateNumericMatrix, чтобы создать 2D mxArray, в котором все элементы данных имеют тип числовых данных, заданный classid. После создания mxArray mxCreateNumericMatrix инициализирует все свои действительные элементы данных к 0. Если ComplexFlag равняется mxCOMPLEX в C (1 на Фортране), mxCreateNumericMatrix также инициализирует все свои элементы мнимых данных к 0. mxCreateNumericMatrix выделяет динамическую память, чтобы сохранить созданный mxArray. Когда вы закончите использовать mxArray, вызовите mxDestroyArray, чтобы уничтожить его.

Следующая таблица показывает значения 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.

Следующие операторы Fortran создают 4-by-3 матрица элементов REAL*4, имеющих мнимые компоненты:

C      Create 4x3 mxArray of REAL*4
       mxCreateNumericMatrix(4, 3,
     +                mxClassIDFromClassName('single'), 0)

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

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