Main Content

subsref

(非推奨) データセット配列の添字付き参照

dataset データ型は推奨されません。異種混合データを処理するには、代わりに MATLAB® table データ型を使用します。詳細は、MATLAB table ドキュメンテーションを参照してください。

構文

B = subsref(A,S)

説明

B = subsref(A,S) は、A がデータセット配列である場合に、A(i,j)A{i,j} または A.var という構文に対して呼び出されます。S は、次のフィールドがある構造体配列です。

type添字のタイプを指定する '()''{}' または '.' が含まれている文字ベクトル。
subs実際の添字が含まれている cell 配列または文字ベクトル。

B = A(i,j) はデータセット配列 A の観測値と変数のサブセットを含むデータセット配列を返します。ij は次のタイプのいずれかです。

  • 正の整数

  • 正の整数のベクトル

  • 観測値/変数の名前

  • 1 つ以上の観測値/変数の名前を含む cell 配列

  • logical ベクトル

BA と同じプロパティ値を、必要に応じて一部を観測値と変数用に設定して含みます。

B = A{i,j} は、データセット変数の要素を返します。ij は正の整数または logical ベクトルです。セルのインデックスを指定しても、複数のデータセット要素は取得できません。つまり、添字 i および j は、それぞれ単一の観測値または変数のみを参照しなければなりません。変数がサポートしていれば、A{i,j} にはさらに添字を続けることもできます。

データセット変数が cell 配列の場合、A{1,'CellVar'} のような式は、順序 cell 配列の {} インデックス付けの場合と同様な方法で、参照されたデータセット要素の内容を返します。データセット変数が複数のセルを 1 列にまとめたものである場合、単一セルの内容が返されます。データセット変数が複数列をもつ場合または n 次元である場合、複数のセルの内容が含まれている複数の出力が返されます。

データセット変数が n 次元の配列、つまり各観測値が行列または配列の場合、A{1,'ArrayVar'} のような式は、次元 1 のものを削除して A.ArrayVar(1,:,...) を返します。

B = A.var または A.(varname) は、データセット変数を返します。var は変数名、varname は変数名が格納されている文字変数です。変数がサポートしていれば、A.var または A.(varname) にはさらに添字を続けることもできます。特に、A.var(obsnames,...)A.var{obsnames,...} では (var でサポートされている場合)、観測名を使用したデータセット変数への添字付けが可能です。

P = A.Properties.propertyname は、データセットのプロパティを返します。propertyname は次のいずれかです。

  • 'ObsNames'

  • 'VarNames'

  • 'Description'

  • 'Units'

  • 'DimNames'

  • 'UserData'

  • 'VarDescription'

A.properties.propertyname には、プロパティでサポートされている形式で、追加の添字を付けることもあります。

制限

A.CellVar{1:2}A.StructVar(1:2).field、または A.Properties.ObsNames{1:2} のような添字表現は有効ですが、subsref が複数の出力をコンマで区切られたリスト形式で返す結果になります。[cellval1,cellval2] = A.CellVar{1:2} のように代入の左辺の出力引数に明示的に代入すると、これらの変数には対応する値が渡されます。しかし出力引数がない場合は、1 番目の出力だけがコンマ区切りリストで返されます。

同様に、データセット変数が複数列の cell 配列、または n 次元の cell 配列の場合、A{1,'CellVar'} のような添字表現は subsref が複数セルの内容を返す結果になります。[cellval1,cellval2] = A{1,'CellVar'} のように、代入の左辺の出力引数に明示的に代入する必要があります。

参考

| |