datasetfun
(非推奨) データセット配列変数への関数の適用
dataset データ型は推奨されません。異種混合データを処理するには、代わりに MATLAB® table データ型を使用します。詳細は、MATLAB table ドキュメンテーションを参照してください。
構文
b = datasetfun(fun,A)
[b,c,...] = datasetfun(fun,A)
[b,...] = datasetfun(fun,A,...,'UniformOutput',false)
[b,...] = datasetfun(fun,A,...,'DatasetOutput',true)
[b,...] = datasetfun(fun,A,...,'DataVars',vars)
[b,...] = datasetfun(fun,A,...,'ObsNames',obsnames)
[b,...] = datasetfun(fun,A,...,'ErrorHandler',efun)
説明
b = datasetfun(fun,A) は、fun が指定する関数をデータセット配列 A の個々の変数に適用して、その結果をベクトル b で返します。b の i 番目の要素は、A の i 番目のデータセット変数に適用される fun と等しくなります。fun は 1 つの入力引数をとり、スカラー値を返す関数への関数ハンドルです。fun は、呼び出されるたびに同じクラスの値を返さなければなりません。また、datasetfun は、それらの値をベクトル b に連結します。fun からの出力は、umeric、logical、character、structure、または cell のいずれかのデータ型でなければなりません。
非スカラー値またはサイズやデータ型の異なる結果を返す関数を適用するには、以下で説明する 'UniformOutput' または 'DatasetOutput' パラメーターを使用します。
datasetfun が b の要素を計算する順序は指定されないので使用できません。
fun が複数の組み込み関数またはファイルにバインドされている場合 (すなわち、オーバーロードされた関数セットを表す場合)、datasetfun は MATLAB の処理規則に従って関数を呼び出します (関数の優先順位 を参照)。
[b,c,...] = datasetfun(fun,A) は、fun が複数の出力を返す関数の関数ハンドルである場合、fun の出力引数のいずれかにそれぞれ対応するベクトル b、c... を返します。関数 datasetfun は、毎回 datasetfun への呼び出しにある出力と同じ数の出力を使用して fun を呼び出します。fun は、クラスの異なる出力引数を返すことができますが、各出力のクラスは fun が呼び出されるたびに同じでなければなりません。
[b,...] = datasetfun(fun,A,...,'UniformOutput',false) を使用すると、サイズやデータ型の異なる値を返す関数 fun を指定できます。datasetfun は、i 番目のセルに A の i 番目のデータセット変数に適用される fun の値を含む cell 配列 (または複数の cell 配列) を返します。'UniformOutput' を true に設定したときの動作は、既定の設定の動作と同じです。
[b,...] = datasetfun(fun,A,...,'DatasetOutput',true) は、fun の出力がデータセット配列 (1 つまたは複数のデータセット配列) 内の変数として返されることを指定します。fun は、呼び出されるたびに同じ行数の値を返さなければなりません。ただし、値のデータ型は任意です。出力データセット配列内の変数名は、入力の変数の名前と同じになります。'DatasetOutput' を false (既定値) に設定すると、datasetfun の出力のデータ型が 'UniformOutput' によって決定されます。
[b,...] = datasetfun(fun,A,...,'DataVars',vars) では、vars で指定される A 内のデータセット変数のみに fun を適用できます。vars は、正の整数、正の整数のベクトル、文字ベクトル、string 配列、文字ベクトルの cell 配列、または logical ベクトルです。
[b,...] = datasetfun(fun,A,...,'ObsNames',obsnames) は、'DatasetOutput' が true の場合、データセット出力用の観測値の名前を指定します。
efun が関数ハンドルである [b,...] = datasetfun(fun,A,...,'ErrorHandler',efun) は、fun への呼び出しが失敗した場合に呼び出す MATLAB 関数を指定します。エラー処理関数は以下の入力引数を使って呼び出されます。
identifier、message、およびindexという 3 つのフィールドをもつ構造体。これらのフィールドはそれぞれ、発生したエラーの識別子、エラー メッセージのテキスト、エラーが発生した (1 つまたは複数の) 入力配列への線形インデックスを格納しています。関数の呼び出しが失敗した入力引数の集合。
エラー処理関数は、エラーを再スローするか、fun と同じ数の出力を返します。これらの出力は、datasetfun の出力として返されます。'UniformOutput' が true の場合、エラー ハンドラーの出力も、fun の出力と同じ型のスカラー値にならなければなりません。たとえば、次のコードをエラー処理関数としてファイルに保存できます。
function [A,B] = errorFunc(S,varargin) warning(S.identifier,S.message); A = NaN; B = NaN;
エラー処理関数が指定されない場合、fun の呼び出しからのエラーが再スローされます。
