datasetfun
クラス: dataset
(非推奨) データセット配列変数への関数の適用
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
の呼び出しからのエラーが再スローされます。