matlab::data::ArrayType
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
};
C++ 데이터형 변환
| MATLAB ArrayType 값 | C++ 유형 | 설명 |
|---|---|---|
DOUBLE | double | 배정밀도(64비트) 부동소수점 숫자 |
SINGLE | float | 단정밀도(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 | double형의 희소 배열 |
SPARSE_COMPLEX_DOUBLE | std::complex<double> | 복소수 double형의 희소 배열 |
MATLAB_STRING | MATLAB string형 |
예제
배열이 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;버전 내역
R2017b에 개발됨