Класс перечисления типов массивов 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 };
Значение MATLAB ArrayType | Тип C++ | Описание |
---|---|---|
DOUBLE |
дважды |
двойная точность (64-разрядная), число с плавающей запятой |
SINGLE |
плавание |
одинарная точность (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 |
std:: complex < double > |
комплексная, двойная точность (64-разрядная), число с плавающей запятой |
COMPLEX_SINGLE |
std:: complex < float > |
комплексная, одинарная точность (32-разрядная), число с плавающей запятой |
COMPLEX_INT8 |
std:: complex < int8 _ t > |
комплексный, со знаком 8-битное целое число |
COMPLEX_UINT8 |
std:: complex < uint8 _ t > |
комплексное, беззнаковое 8-битное целое число |
COMPLEX_INT16 |
std:: complex < int16 _ t > |
комплексный, со знаком 16-битное целое число |
COMPLEX_UINT16 |
std:: complex < uint16 _ t > |
комплексное, беззнаковое 16-битное целое число |
COMPLEX_INT32 |
std:: complex < int32 _ t > |
комплексное, со знаком 32-битное целое число |
COMPLEX_UINT32 |
std:: complex < uint32 _ t > |
комплексное, беззнаковое 32-битное целое число |
COMPLEX_INT64 |
std:: complex < int64 _ t > |
комплексное, со знаком 64-битное целое число |
COMPLEX_UINT64 |
std:: complex < uint64 _ t > |
комплексное, беззнаковое 64-битное целое число |
CELL |
Массив, содержащий другие массивы | |
STRUCT |
Массив с именованными полями, которые могут содержать данные различных типов и размеров | |
VALUE_OBJECT |
Объект значения MATLAB | |
HANDLE_OBJECT_REF |
Ссылка на существующий указатель объекта в MATLAB | |
ENUM |
Массив значений перечисления | |
SPARSE_LOGICAL |
bool |
Разреженный массив логических |
SPARSE_DOUBLE |
дважды |
Разреженный массив double |
SPARSE_COMPLEX_DOUBLE |
std:: complex < double > |
Разреженный массив комплексного двойника |
MATLAB_STRING |
Строка MATLAB |
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;