Main Content

MATLAB Type to C++ Type Mapping

When you pass MATLAB® data as arguments to C++ methods or functions, MATLAB converts the data into types that best represent the data to the C++ language.

Each row in this table shows a MATLAB type followed by the possible C++ argument matches, from left to right in order of closeness of the match. The MATLAB types (except cell arrays) can be scalar (1-by-1) arrays or matrices. The C++ types can be scalar values or arrays. The phrase cpparray refers to these C++ array types:

  • box array ([])

  • array buffer (*)

  • std::vector

MATLAB Argument (Scalar or Array)

C++ Parameter Type (Scalar or Array)
Types Other Than Object

Closest Type <———————————————————————> Least Close Type

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>

   

complex 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>

 

complex single

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

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

     

complex [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>

 

complex [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>

  

complex [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>

   

complex [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 scalar
See Call Function with Enum Arguments.

enum      

string array
cell array of character vectors

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

char * []

     

MATLAB object of C++ type MyClass

C++ object of type MyClass

      

Note

MATLAB object of MATLAB class is unsupported.