Main Content

matlab::data::StructArray

MATLAB struct 配列にアクセスするための C++ クラス

説明

StructArray オブジェクトを使用して MATLAB® struct 配列を操作します。配列内の 1 つの要素のフィールドにアクセスするには、フィールド名を使用します。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 オブジェクト内のすべてのフィールドへのアクセスを可能にする begin 反復子と end 反復子が含まれます。

スロー

なし

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 で導入