Класс перечисления типов массивов 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;