Класс перечисления типа массива 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:: комплекс < двойник > |
комплексное, с двойной точностью (64-разрядное), число с плавающей запятой |
COMPLEX_SINGLE |
std:: комплекс < поплавок > |
комплексное, с одной точностью (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 |
дважды |
Разреженный массив двойников |
SPARSE_COMPLEX_DOUBLE |
std:: комплекс < двойник > |
Разреженный массив сложных двойников |
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;