Main Content

subsasgn

(非推奨) データセット配列への添字付き代入

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

説明

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

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

A(i,j) = B は、データセット配列 B の内容をデータセット配列 A 内の観測値および変数のサブセットに代入します。ij の型は次のいずれかです。

  • 正の整数

  • 正の整数のベクトル

  • 観測値/変数の名前

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

  • logical ベクトル

割り当てでは A のプロパティを変更するために、観測値名、変数名、または B のどのプロパティも使用しません。しかし、その割り当てが A の観測数または変数の数を拡張する場合は、A のプロパティは既定値で拡張されます。B の要素は名前の一致ではなく、位置によって A に割り当てられます。

A{i,j} = B は、値 B をデータセット配列 A の要素に代入します。iJ は、正の整数または logical ベクトルです。セルのインデックスを指定しても、複数のデータセット要素には代入できません。つまり、添字 i および j は、それぞれ単一の観測値または変数のみを参照しなければなりません。必要な場合、B の型は目的の変数の型に変換されます。データセット要素が既に存在する場合は、変数でサポートされている形式で、追加の添字を A{i,j} に付けることもあります。

データセット変数が cell 配列の場合、A{1,'CellVar'} = B のような割り当ては、順序 cell 配列の {} インデックス付けの場合と同様な方法で、目標データセット要素の内容に割り当てます。

データセット変数が n 次元の配列の場合、つまり各観測値が行列または配列の場合、A{1,'ArrayVar'} = B のように代入すると、目的のデータセット要素の 2 番目以降の次元に代入されます。つまり、データセット変数の観測値の次元に対応するため、大きさが 1 の次元が B の先頭に追加されます。

A.var = B または A.(varname) = B は、B をデータセット変数に代入します。var は変数名のリテラル、varname は変数名が格納されている文字変数です。データセット変数が既に存在している場合、その変数は代入により完全に置き換えられます。変数の要素に割り当てるために、変数でサポートされている形式で、追加の添字を A.var または A.(varname) に付けることもあります。特に、A.var(obsnames,...) = BA.var{obsnames,...} = B (var がサポートしている場合) では、観測値の名前を使用してデータセット変数に代入します。

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

  • 'ObsNames'

  • 'VarNames'

  • 'Description'

  • 'Units'

  • 'DimNames'

  • 'UserData'

  • 'VarDescription'

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

[A.CellVar{1:2}] = B[A.StructVar(1:2).field] = B[A.Properties.ObsNames{1:2}] = B などの代入を使用しても、複数の値をデータセット変数またはプロパティに代入することはできません。その場合は、代わりに形式 A.CellVar{1} = B の複数割り当てを使用します。

同様に、データセット変数が複数列の cell 配列または n 次元の cell 配列の場合、その変数の内容は単一の観測値に対して複数のセルで構成されるので、構文 A{1,'CellVar'} = B を使用しても、すべてのセルに代入することはできません。その場合は、代わりに形式 [A.CellVar{1,1}] = B の複数割り当てを使用します。

参考

| |