Отображения типа данных между C++ и кодом MATLAB Со строгим контролем типов

C++ к MATLAB

В следующей таблице перечислены отображение типа данных типов данных C++ в MATLAB со строгим контролем типов® типы данных.

ОписаниеТип данных C++Представление типа данных MATLAB
Действительный двойной скаляр

double

(1, 1) double {mustBeReal}

Действительный двойной вектор

std::vector<double>

(1, :) double {mustBeReal}

Комплекс удваивает скаляр

Примечание

Может быть передан MATLAB как плоскость, действительная посредством перегрузки C++

std::complex<double>

(1, 1) double

Комплекс удваивает вектор

Примечание

Может быть передан MATLAB как простые реалы посредством перегрузки C++

std::vector<std::complex<double>>

(1, :) double

Действительный один скаляр

float

(1, 1) single {mustBeReal}

Действительный один вектор

std::vector<float>

(1, :) single {mustBeReal}

Объедините один скаляр

Примечание

Может быть передан MATLAB как плоскость, действительная посредством перегрузки C++

std::complex<float>

(1, 1) single

Объедините один вектор

Примечание

Может быть передан MATLAB как простые реалы посредством перегрузки C++

std::vector<std::complex<float>>

(1, :) single

Действительные целочисленные скаляры

int8_t

int16_t

int32_t

int64_t

uint8_t

uint16_t

uint32_t

uint64_t

(1, 1) int8 {mustBeReal}

(1, 1) int16 {mustBeReal}

(1, 1) int32 {mustBeReal}

(1, 1) int64 {mustBeReal}

(1, 1) uint8 {mustBeReal}

(1, 1) uint16 {mustBeReal}

(1, 1) uint32 {mustBeReal}

(1, 1) uint64 {mustBeReal}

Действительные целочисленные векторы

std::vector<int8_t>

std::vector<int16_t>

std::vector<int32_t>

std::vector<int64_t>

std::vector<uint8_t>

std::vector<uint16_t>

std::vector<uint32_t>

std::vector<uint64_t>

(1, :) int8 {mustBeReal}

(1, :) int16 {mustBeReal}

(1, :) int32 {mustBeReal}

(1, :) int64 {mustBeReal}

(1, :) uint8 {mustBeReal}

(1, :) uint16 {mustBeReal}

(1, :) uint32 {mustBeReal}

(1, :) uint64 {mustBeReal}

Скаляры комплексного целого числа

std::complex<int8_t>

std::complex<int16_t>

std::complex<int32_t>

std::complex<int64_t>

std::complex<uint8_t>

std::complex<uint16_t>

std::complex<uint32_t>

std::complex<uint64_t>

(1, 1) int8

(1, 1) int16

(1, 1) int32

(1, 1) int64

(1, 1) uint8

(1, 1) uint16

(1, 1) uint32

(1, 1) uint64

Векторы комплексного целого числа

std::vector<std::complex<int8_t>>

std::vector<std::complex<int16_t>>

std::vector<std::complex<int32_t>>

std::vector<std::complex<int64_t>>

std::vector<std::complex<uint8_t>>

std::vector<std::complex<uint16_t>>

std::vector<std::complex<uint32_t>>

std::vector<std::complex<uint64_t>>

(1, :) int8

(1, :) int16

(1, :) int32

(1, :) int64

(1, :) uint8

(1, :) uint16

(1, :) uint32

(1, :) uint64

Логический скаляр

bool

(1, 1) logical

Логический вектор

std::vector<bool>

(1, :) logical

Символьный скаляр

char16_t

(1, 1) char

Символьный вектор

std::u16string

(1, :) char

Строка

std::u16string

(1, 1) string

Вектор строки

std::vector<std::u16string>

(1, :) string

Перечислимый скаляр

Внимание

Эта опция не хорошо поддерживается

matlab::data::Array содержа matlab::data::ArrayType ENUM

(1, 1) MyEnumClass

Перечислимый вектор

Внимание

Эта опция не хорошо поддерживается

matlab::data::Array содержа matlab::data::ArrayType ENUM

(1, :) MyEnumClass

MATLAB на C++

В следующей таблице перечислены отображение типа данных типов данных MATLAB со строгим контролем типов к типам данных C++.

ОписаниеТип данных MATLABПредставление типа данных C++
Действительный двойной скаляр

(1, 1) double {mustBeReal}

double или vector<double>

Действительный двойной вектор

(1, :) double {mustBeReal}

std::vector<double>

Комплекс удваивает скаляр

Примечание

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

(1, 1) double

std::complex<double>

Комплекс удваивает вектор

Примечание

Сохраненный в Массиве данных MATLAB, если результат действителен

(1, :) double

matlab::data::Array

Если результат содержит DOUBLE или COMPLEX_DOUBLE:

matlab::data::ArrayType

Действительный один скаляр

(1, 1) single {mustBeReal}

float

Действительный один вектор

(1, :) single {mustBeReal}

std::vector<float>

Объедините один скаляр

(1, 1) single

std::complex<float>

Объедините один вектор

(1, :) single

matlab::data::Array

Если результат содержит SINGLE или COMPLEX_SINGLE:

matlab::data::ArrayType

Действительные целочисленные скаляры

(1, 1) int8 {mustBeReal}

(1, 1) int16 {mustBeReal}

(1, 1) int32 {mustBeReal}

(1, 1) int64 {mustBeReal}

(1, 1) uint8 {mustBeReal}

(1, 1) uint16 {mustBeReal}

(1, 1) uint32 {mustBeReal}

(1, 1) uint64 {mustBeReal}

int8_t

int16_t

int32_t

int64_t

uint8_t

uint16_t

uint32_t

uint64_t

Действительные целочисленные векторы

(1, :) int8 {mustBeReal}

(1, :) int16 {mustBeReal}

(1, :) int32 {mustBeReal}

(1, :) int64 {mustBeReal}

(1, :) uint8 {mustBeReal}

(1, :) uint16 {mustBeReal}

(1, :) uint32 {mustBeReal}

(1, :) uint64 {mustBeReal}

std::vector<int8_t>

std::vector<int16_t>

std::vector<int32_t>

std::vector<int64_t>

std::vector<uint8_t>

std::vector<uint16_t>

std::vector<uint32_t>

std::vector<uint64_t>

Скаляры комплексного целого числа

(1, 1) int8

(1, 1) int16

(1, 1) int32

(1, 1) int64

(1, 1) uint8

(1, 1) uint16

(1, 1) uint32

(1, 1) uint64

std::complex<int8_t>

std::complex<int16_t>

std::complex<int32_t>

std::complex<int64_t>

std::complex<uint8_t>

std::complex<uint16_t>

std::complex<uint32_t>

std::complex<uint64_t>

Векторы комплексного целого числа

(1, :) int8

(1, :) int16

(1, :) int32

(1, :) int64

(1, :) uint8

(1, :) uint16

(1, :) uint32

(1, :) uint64

matlab::data::Array

Если результат содержит INT8, COMPLEX_INT8int16, COMPLEX_INT16int32, COMPLEX_INT32int64, COMPLEX_INT64uint8, COMPLEX_UINT8uint16, COMPLEX_UINT16uint32, COMPLEX_UINT32uint64, или COMPLEX_UINT64:

matlab::data::ArrayType

Логический скаляр

(1, 1) logical

bool

Логический вектор

(1, :) logical

std::vector<bool>

Символьный скаляр

(1, 1) char

char16_t

Символьный вектор

(1, :) char

std::u16string

Строка

(1, 1) string

std::u16string

Вектор строки

(1, :) string

std::vector<std::u16string>

Перечислимый скаляр

(1, 1) MyEnumClass

matlab::data::Array содержа ENUM matlab::data::ArrayType

Перечислимый вектор

(1, :) MyEnumClass

matlab::data::Array содержа ENUM matlab::data::ArrayType

Скаляр ячейки MATLAB

(1, 1) cell

matlab::data::Array содержа CELL matlab::data::ArrayType

Вектор ячейки MATLAB

(1, :) cell

matlab::data::Array содержа CELL matlab::data::ArrayType

Struct MATLAB

Внимание

Эта опция не хорошо поддерживается

(1, 1) struct

matlab::data::Array содержа STRUCT matlab::data::ArrayType

Struct MATLAB

Внимание

Эта опция не хорошо поддерживается

(1, :) struct

matlab::data::Array содержа STRUCT matlab::data::ArrayType

Смотрите также

|

Похожие темы