Main Content

matlab::data::TypedArray<T>

配列データにアクセスするための、テンプレート化された C++ クラス

説明

テンプレート化された TypedArray クラスにより、すべての MATLAB 配列の型 (スパース配列を除く) を扱うためのタイプセーフな API が提供されます。TypedArray を作成するには、テンプレートのインスタンス化にリストされているテンプレートのいずれかを使用して、ArrayFactory クラスの createArray または createScalar を呼び出します。

このクラスは次の反復子の型を定義します。

using iterator = TypedIterator<T>;
using const_iterator = TypedIterator<T const>;

クラスの詳細

名前空間:

matlab::data

基底クラス:

matlab::data::Array

インクルード:

TypedArray.hpp

テンプレート パラメーター

T

参照先の要素の型。

テンプレートのインスタンス化

double

float

int8_t

uint8_t

int16_t

uint16_t

int32_t

uint32_t

int64_t

uint64_t

char16_t

bool

std::complex<double>

std::complex<float>

std::complex<int8_t>

std::complex<uint8_t>

std::complex<int16_t>

std::complex<uint16_t>

std::complex<int32_t>

std::complex<uint32_t>

std::complex<int64_t>

std::complex<uint64_t>

matlab::data::Array
matlab::data::Struct
matlab::data::Enumeration

matlab::data::MATLABString

コンストラクター

コピー コンストラクター

TypedArray(const TypedArray<T>& rhs)

TypedArray(const Array& rhs)

説明

入力の共有データ コピーを作成します。

パラメーター

const TypedArray<T>& rhs

コピーする値。

const Array& rhs

matlab::data::Array オブジェクトとして指定される値。

スロー

matlab::data::InvalidArrayTypeException

入力 Array の型が TypedArray<T> の型と一致しません。

コピー代入演算子

TypedArray<T>& operator=(const TypedArray<T>& rhs)

TypedArray<T>& operator=(const Array& rhs)

説明

この TypedArray<T> に入力の共有データ コピーを代入します。

パラメーター

const TypedArray<T>& rhs

コピーする値。

const Array& rhs

matlab::data::Array オブジェクトとして指定される値。

戻り値

TypedArray<T>&

更新されたインスタンス。

スロー

matlab::data::InvalidArrayTypeException

入力 Array の型が TypedArray<T> の型と一致しません。

移動コンストラクター

TypedArray(TypedArray<T>&& rhs)

TypedArray(Array&& rhs)

説明

入力の内容を新しいインスタンスに移動させます。

パラメーター

TypedArray<T>&& rhs

移動する値。

Array&& rhs

matlab::data::Array オブジェクトとして指定される値。

スロー

matlab::data::InvalidArrayTypeException

入力の型が一致しません。

移動代入演算子

TypedArray<T>& operator=(TypedArray<T>&& rhs)

TypedArray<T>& operator=(Array&& rhs)

説明

この TypedArray<T> オブジェクトに入力を移動します。

パラメーター

TypedArray<T>&& rhs

移動させる値。

戻り値

TypedArray<T>&

更新されたインスタンス。

スロー

matlab::data::InvalidArrayTypeException

入力 Array の型が TypedArray<T> の型と一致しません。

デストラクター

virtual ~TypedArray()

反復子

開始反復子

iterator begin()

const_iterator begin() const

const_iterator cbegin() const

戻り値

iterator

配列の先頭の反復子。TypedIterator<T> として指定します。

const_iterator

反復子。TypedIterator<typename std::add_const<T>::type> として指定します。

スロー

なし

終了反復子

iterator end()

const_iterator end() const

const_iterator cend() const

戻り値

iterator

配列の終端の反復子。TypedIterator<T> として指定します。

const_iterator

反復子。TypedIterator<typename std::add_const<T>::type> として指定します。

スロー

なし

インデックス演算子

operator[]

ArrayElementTypedRef<T, std::is_const<T>::value> operator[](size_t idx)

ArrayElementTypedRef<T, true> operator[](size_t idx) const

説明

TypedArray に対する [] インデックスを有効にします。インデックスは 0 ベースです。

パラメーター

size_t idx

最初の配列インデックス。

戻り値

ArrayElementTypedRef<T, std::is_const<T>::value>

指定されたインデックスを含む一時オブジェクト。T 型が const の場合、戻り値により配列の要素の取得が可能ですが、変更はできません。それ以外の場合は、要素の変更や取得が可能です。

ArrayElementTypedRef<T, true>

指定されたインデックスを含む一時オブジェクト。戻り値により配列の要素の取得が可能ですが、変更はできません。

スロー

なし

メンバー関数

release

buffer_ptr_t<T> release()
説明

基礎となっているバッファーを Array から解放します。Array が共有されている場合はバッファーのコピーが作成されます。そうでない場合、コピーは作成されません。バッファーが解放された後、配列に含まれる要素はなくなります。

戻り値

buffer_ptr_t<T>

データ ポインターを含む unique_ptr

スロー

matlab::data::InvalidArrayTypeException

TypedArray はバッファーの解放をサポートしません。

すべて展開する

MATLAB の配列 [1 2; 3 4] と同等の配列を作成し、配列の各要素を単一の値で置き換えます。

#include "MatlabDataArray.hpp"

int main() {
	matlab::data::ArrayFactory factory;
	// Create an array equivalent to the MATLAB array [1 2; 3 4].
	matlab::data::TypedArray<double> D = factory.createArray<double>({ 2,2 }, { 1,3,2,4 });
	// Change the values.
	for (auto& elem : D) {
		elem = 5.5;
	}
	return 0;
}

バージョン履歴

R2017b で導入