主要内容

MATLAB 类型到 C++ 类型的映射

当您将 MATLAB® 数据作为参量传递给 C++ 方法或函数时,MATLAB 会将数据转换为最适合在 C++ 语言中表示该数据的类型。

下表中的每行显示一种 MATLAB 类型,后跟可能的 C++ 参量匹配项,其接近度从左至右递减。MATLAB 类型(元胞数组除外)可以是标量(1×1)数组或矩阵。C++ 类型可以是标量值或数组。短语 cpparray 指以下 C++ 数组类型:

  • 框数组 ([])

  • 数组缓冲区 (*)

  • std::vector

MATLAB 参量(标量或数组)

C++ 参数类型(标量或数组)
对象之外的类型

最接近的类型 <-----------------------> 最不接近的类型

logical

bool
cpparray bool

int8_t
cpparray int8_t
uint8_t
cpparray uint8_t

int16_t
cpparray int16_t
uint16_t
cpparray uint16_t

int32_t
cpparray int32_t
uint32_t
cpparray uint32_t

int64_t
cpparray int64_t
uint64_t
cpparray uint64_t

float
cpparray float

double
cpparray double

double

double
cpparray double

float
cpparray float

int64_t
cpparray int64_t
uint64_t
cpparray uint64_t

int32_t
cpparray int32_t
uint32_t
cpparray uint32_t

int16_t
cpparray int16_t
uint16_t
cpparray uint16_t

int8_t
cpparray int8_t
uint8_t
cpparray uint8_t

std::complex<double>
cpparray std::complex<double>
std::complex<float>
cpparray std::complex<float>
std::complex<int64_t>
cpparray std::complex<int64_t>
std::complex<uint64_t>
cpparray std::complex<uint64_t>
std::complex<int32_t>
cpparray std::complex<int32_t>
std::complex<uint32_t>
cpparray std::complex<uint32_t>
std::complex<int16_t>
cpparray std::complex<int16_t>
std::complex<uint16_t>
cpparray std::complex<uint16_t>
std::complex<int8_t>
cpparray std::complex<int8_t>
std::complex<uint8_t>
cpparray std::complex<uint8_t>

single

float
cpparray float

double
cpparray double

std::complex<float>
cpparray std::complex<float>

std::complex<double>
cpparray std::complex<double>

   

[u]int8

[u]int8_t
cpparray [u]int8_t

[u]int16_t
cpparray [u]int16_t

[u]int32_t
cpparray [u]int32_t

[u]int64_t
cpparray [u]int64_t

float
cpparray float

double
cpparray double

std::complex<[u]int8_t>
cpparray std::complex<[u]int8_t>
std::complex<[u]int16_t>
cpparray std::complex<[u]int16_t>
std::complex<[u]int32_t>
cpparray std::complex<[u]int32_t>
std::complex<[u]int64_t>
cpparray std::complex<[u]int64_t>
std::complex<float>
cpparray std::complex<float>
std::complex<double>
cpparray std::complex<double>

[u]int16

[u]int16_t
cpparray [u]int16_t

[u]int32_t
cpparray [u]int32_t

[u]int64_t
cpparray [u]int64_t

float
cpparray float

double
cpparray double

std::complex<[u]int16_t>
cpparray std::complex<[u]int16_t>
std::complex<[u]int32_t>
cpparray std::complex<[u]int32_t>
std::complex<[u]int64_t>
cpparray std::complex<[u]int64_t>
std::complex<float>
cpparray std::complex<float>
std::complex<double>
cpparray std::complex<double>

 

[u]int32

[u]int32_t
cpparray [u]int32_t

[u]int64_t
cpparray [u]int64_t

float
cpparray float

double
cpparray double

std::complex<[u]int32_t>
cpparray std::complex<[u]int32_t>
std::complex<[u]int64_t>
cpparray std::complex<[u]int64_t>
std::complex<float>
cpparray std::complex<float>
std::complex<double>
cpparray std::complex<double>

  

[u]int64

[u]int64_t
cpparray [u]int64_t

float
cpparray float

double
cpparray double

std::complex<[u]int64_t>
cpparray std::complex<[u]int64_t>
std::complex<float>
cpparray std::complex<float>
std::complex<double>
cpparray std::complex<double>

   

复数 double

std::complex<double>
cpparray std::complex<double>

std::complex<float>
cpparray std::complex<float>

std::complex<int64_t>
cpparray std::complex<int64_t>
std::complex<uint64_t>
cpparray std::complex<uint64_t>

std::complex<int32_t>
cpparray std::complex<int32_t>
std::complex<uint32_t>
cpparray std::complex<uint32_t>

std::complex<int16_t>
cpparray std::complex<int16_t>
std::complex<uint16_t>
cpparray std::complex<uint16_t>

std::complex<int8_t>
cpparray std::complex<int8_t>
std::complex<uint8_t>
cpparray std::complex<uint8_t>

 

复数 single

std::complex<float>
cpparray std::complex<float>

std::complex<double>
cpparray std::complex<double>

     

复数 [u]int8

std::complex<[u]int8_t>
cpparray std::complex<[u]int8_t>

std::complex<[u]int16_t>
cpparray std::complex<[u]int16_t>

std::complex<[u]int32_t>
cpparray std::complex<[u]int32_t>

std::complex<[u]int64_t>
cpparray std::complex<[u]int64_t>

std::complex<float>
cpparray std::complex<float>

std::complex<double>
cpparray std::complex<double>

 

复数 [u]int16

std::complex<[u]int16_t>
cpparray std::complex<[u]int16_t>

std::complex<[u]int32_t>
cpparray std::complex<[u]int32_t>

std::complex<[u]int64_t>
cpparray std::complex<[u]int64_t>

std::complex<float>
cpparray std::complex<float>

std::complex<double>
cpparray std::complex<double>

  

复数 [u]int32

std::complex<[u]int32_t>
cpparray std::complex<[u]int32_t>

std::complex<[u]int64_t>
cpparray std::complex<[u]int64_t>

std::complex<float>
cpparray std::complex<float>

std::complex<double>
cpparray std::complex<double>

   

复数 [u]int64

std::complex<[u]int64_t>
cpparray std::complex<[u]int64_t>

std::complex<double>
cpparray std::complex<double>

     

char

cpparray char
char16_t
cpparray char16_t
char32_tcpparray char32_t

wchar_t
cpparray wchar_t

std::string
std::wstring
std::u16string
std::u32string

     

string 标量
请参阅Call Function with Enum Arguments

enum      

string 数组
字符向量元胞数组

std::vector<std::string>
std::vector<std::wstring>
std::vector<std::u16string>
std::vector<std::u32string>

char * []

     

C++ 类型 MyClass 的 MATLAB 对象

MyClass 类型的 C++ 对象

      

注意

不支持 MATLAB 类的 MATLAB 对象。