Main Content

matlab::data::StructArray

MATLAB 구조체형 배열에 액세스하기 위한 C++ 클래스

설명

StructArray 객체를 사용하여 MATLAB® 구조체형 배열을 처리합니다. 배열의 단일 요소에 대한 필드에 액세스하려면 필드 이름을 사용하십시오. StructArray 객체를 만들려면, ArrayFactory 클래스에서 createStructArray를 호출하십시오.

클래스 세부 정보

네임스페이스:

matlab::data

기본 클래스:

TypedArray<Struct>

포함:

StructArray.hpp

생성자

복사 생성자

StructArray(const StructArray& rhs)

StructArray(const Array& rhs)

설명

StructArray 객체의 공유된 데이터 복사본을 만듭니다.

파라미터

const StructArray& rhs

복사할 값.

const Array& rhs

ArrayType::STRUCT 객체로 지정된 값.

발생되는 예외

matlab::data::InvalidArrayTypeException

입력값 Array의 유형이 ArrayType::STRUCT가 아닙니다.

복사본 할당 연산자

StructArray& operator=(const StructArray& rhs)

StructArray& operator=(const Array& rhs)

설명

공유된 데이터 복사본을 StructArray 객체에 할당합니다.

파라미터

const StructArray& rhs

복사할 값.

const Array& rhs

ArrayType::STRUCT 객체로 지정된 값.

반환되는 값

StructArray&

업데이트된 인스턴스.

발생되는 예외

matlab::data::InvalidArrayTypeException

입력값 Array의 유형이 ArrayType::STRUCT가 아닙니다.

이동 생성자

StructArray(StructArray&& rhs)

StructArray(Array&& rhs)

설명

StructArray 객체의 내용을 새 인스턴스로 이동합니다.

파라미터

StructArray&& rhs

이동할 값.

Array&& rhs

ArrayType::STRUCT 객체로 지정된 값.

발생되는 예외

matlab::data::InvalidArrayTypeException

입력값 Array의 유형이 ArrayType::STRUCT가 아닙니다.

이동 할당 연산자

StructArray& operator=(StructArray&& rhs)

설명

입력값을 이 StructArray 객체에 할당합니다.

파라미터

StructArray&& rhs

이동할 값.

반환되는 값

StructArray&

업데이트된 인스턴스.

발생되는 예외

없음

소멸자

~StructArray()

설명

StructArray 객체에 대한 메모리를 비웁니다.

멤버 함수

getFieldNames

Range<ForwardIterator, MatlabFieldIdentifier const> getFieldNames() const
반환되는 값

Range<ForwardIterator, MatlabFieldIdentifier const>

StructArray 객체의 모든 필드에 대한 액세스를 활성화하는 beginend 이터레이터를 포함합니다.

발생되는 예외

없음

getNumberOfFields

size_t getNumberOfFields() const
반환되는 값

size_t

필드 수.

발생되는 예외

없음

예제

모두 확장

다음과 같은 MATLAB 구조체가 있다고 가정하겠습니다.

s = struct('loc', {'east', 'west'}, 'data', {[1, 2, 3], [4., 5., 6., 7., 8.]})

loc east에 대한 데이터를 포함하는 변수를 만듭니다.

val = s(1).data

다음 C++ 코드는 이러한 변수를 만듭니다.

#include "MatlabDataArray.hpp"

int main() {
	using namespace matlab::data;
	ArrayFactory factory;

	StructArray S = factory.createStructArray({ 1,2 }, { "loc", "data" });
	S[0]["loc"] = factory.createCharArray("east");
	S[0]["data"] = factory.createArray<uint8_t>({ 1, 3 }, { 1, 2, 3 });
	S[1]["loc"] = factory.createCharArray("west");
	S[1]["data"] = factory.createArray<double>({ 1, 5 }, { 4., 5., 6., 7., 8. });

	Reference<Array> val = S[0]["data"];
	return 0;
}

버전 내역

R2017b에 개발됨