matlab::data::ArrayType

Класс перечисления типа массива C++

Описание

Используйте ArrayType объекты идентифицировать тип данных и другие атрибуты MATLAB® массив.

Информация о классе

Пространство имен:

matlab::data

Включение:

ArrayType.hpp

Перечисление

enum class ArrayType {
    UNKNOWN,
    LOGICAL,
    CHAR,
    DOUBLE,
    SINGLE,
    INT8,
    UINT8,
    INT16,
    UINT16,
    INT32,
    UINT32,
    INT64,
    UINT64,
    COMPLEX_DOUBLE,
    COMPLEX_SINGLE,
    COMPLEX_INT8,
    COMPLEX_UINT8,
    COMPLEX_INT16,
    COMPLEX_UINT16,
    COMPLEX_INT32,
    COMPLEX_UINT32,
    COMPLEX_INT64,
    COMPLEX_UINT64,
    CELL,
    STRUCT,
    VALUE_OBJECT,
    HANDLE_OBJECT_REF,
    ENUM,
    SPARSE_LOGICAL,
    SPARSE_DOUBLE,
    SPARSE_COMPLEX_DOUBLE,
    MATLAB_STRING
};

Преобразование типа данных C++

Значение MATLAB ArrayType

Тип C++Описание
DOUBLE

'double'

с двойной точностью (64-битный), число с плавающей запятой

SINGLE

float

с одинарной точностью (32-битный), число с плавающей запятой

INT8

int8_t

8-битное целое число со знаком

UINT8

uint8_t

8-битное целое число без знака

INT16

int16_t

16-битное целое число со знаком

UINT16

uint16_t

16-битное целое число без знака

INT32

int32_t

32-битное целое число со знаком

UINT32

uint32_t

32-битное целое число без знака

INT64

int64_t

64-битное целое число со знаком

UINT64

uint64_t

64-битное целое число без знака

CHAR

char16_t

16-битный символ

LOGICAL

bool

логический

COMPLEX_DOUBLE

станд:: <дважды>

комплекс, с двойной точностью (64-битный), число с плавающей запятой

COMPLEX_SINGLE

станд:: <плавание>

комплекс, (32-битная) одинарная точность, число с плавающей запятой

COMPLEX_INT8

станд:: <int8_t>

комплекс, подписанное 8-битное целое число

COMPLEX_UINT8

станд:: <uint8_t>

комплексное, 8-битное целое число без знака

COMPLEX_INT16

станд:: <int16_t>

комплекс, подписанное 16-битное целое число

COMPLEX_UINT16

станд:: <uint16_t>

комплексное, 16-битное целое число без знака

COMPLEX_INT32

станд:: <int32_t>

комплекс, подписанное 32-битное целое число

COMPLEX_UINT32

станд:: <uint32_t>

комплексное, 32-битное целое число без знака

COMPLEX_INT64

станд:: <int64_t>

комплекс, подписанное 64-битное целое число

COMPLEX_UINT64

станд:: <uint64_t>

комплексное, 64-битное целое число без знака

CELL

matlab::data::Array

Массив, содержащий другие Массивы

STRUCT

matlab::data::Struct

Массив с именованными полями, которые могут содержать данные различных типов и размеров

VALUE_OBJECT

matlab::data::Object

Объект значения MATLAB

HANDLE_OBJECT_REF

matlab::data::Object

Ссылка на существующий указатель возражает в MATLAB

ENUM

matlab::data::Enumeration

Массив перечислимых величин

SPARSE_LOGICAL

bool

Разреженный массив логических

SPARSE_DOUBLE

'double'

Разреженный массив дважды

SPARSE_COMPLEX_DOUBLE

станд:: <дважды>

Разреженный массив комплекса дважды

MATLAB_STRING

matlab::data::MATLABString

MATLABString

Примеры

Протестируйте массив на COMPLEX_DOUBLE Ввод

Предположим, что вам объявили массив можно следующим образом.

matlab::data::TypedArray<double> const argArray

После того, как вы устанавливаете значения для argArray, вызовите sqrt функция.

matlab::data::Array const tresults = matlabPtr->feval(u"sqrt", argArray);

Эти операторы тестируют результат на тип COMPLEX_DOUBLE и затем набор тип массива.

matlab::data::TypedArray<std::complex<double>> results = factory.createEmptyArray(); 
matlab::data::ArrayType type = tresults.getType(); 
if (type == matlab::data::ArrayType::COMPLEX_DOUBLE) 
    results = (matlab::data::TypedArray<std::complex<double>>) tresults; 
else 
    std::cout << "ERROR: complex double array expected." << std::endl;
Введенный в R2017b