datasetfun
(Not Recommended) Apply function to dataset array variables
The dataset data type is not recommended. To work with heterogeneous data,
use the MATLAB®
table data type instead. See MATLAB
table documentation for more information.
Syntax
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)
Description
b = datasetfun(fun,A) applies the function
specified by fun to each variable of the dataset array
A, and returns the results in the vector b.
The ith element of b is equal to
fun applied to the ith dataset variable of
A. fun is a function handle to a function that
takes one input argument and returns a scalar value. fun must return
values of the same class each time it is called, and datasetfun
concatenates them into the vector b. The outputs from
fun must be one of the following types: numeric, logical,
character, structure, or cell.
To apply functions that return results that are nonscalar or of different sizes and
types, use the 'UniformOutput' or 'DatasetOutput'
parameters described below.
Do not rely on the order in which datasetfun computes the
elements of b, which is unspecified.
If fun is bound to more than one built-in function or file, (that
is, if it represents a set of overloaded functions), datasetfun
follows MATLAB dispatching rules in calling the function. (See Function Precedence Order.)
[b,c,...] = datasetfun(fun,A), where
fun is a function handle to a function that returns multiple
outputs, returns vectors b, c, ..., each
corresponding to one of the output arguments of fun.
datasetfun calls fun each time with as many
outputs as there are in the call to datasetfun.
fun may return output arguments having different classes, but the
class of each output must be the same each time fun is called.
[b,...] = datasetfun(fun,A,...,'UniformOutput',false)
allows you to specify a function fun that returns values of different
sizes or types. datasetfun returns a cell array (or multiple cell
arrays), where the ith cell contains the value of
fun applied to the ith dataset variable of
A. Setting 'UniformOutput' to
true is equivalent to the default behavior.
[b,...] = datasetfun(fun,A,...,'DatasetOutput',true)
specifies that the output(s) of fun are returned as variables in a
dataset array (or multiple dataset arrays). fun must return values
with the same number of rows each time it is called, but it may return values of any
type. The variables in the output dataset array(s) have the same names as the variables
in the input. Setting 'DatasetOutput' to false
(the default) specifies that the type of the output(s) from
datasetfun is determined by
'UniformOutput'.
[b,...] = datasetfun(fun,A,...,'DataVars',vars)
allows you to apply fun only to the dataset variables in
A specified by vars. vars
is a positive integer, a vector of positive integers, a character vector, a string
array, a cell array of character vectors, or a logical vector.
[b,...] = datasetfun(fun,A,...,'ObsNames',obsnames)
specifies observation names for the dataset output when
'DatasetOutput' is true.
[b,...] = datasetfun(fun,A,...,'ErrorHandler',efun),
where efun is a function handle, specifies the MATLAB function to call if the call to fun fails. The
error-handling function is called with the following input arguments:
A structure with the fields
identifier,message, andindex, respectively containing the identifier of the error that occurred, the text of the error message, and the linear index into the input array(s) at which the error occurredThe set of input arguments at which the call to the function failed
The error-handling function should either re-throw an error, or return the same number
of outputs as fun. These outputs are then returned as the outputs of
datasetfun. If 'UniformOutput' is true, the
outputs of the error handler must also be scalars of the same type as the outputs of
fun. For example, the following code could be saved in a file as
the error-handling function:
function [A,B] = errorFunc(S,varargin) warning(S.identifier,S.message); A = NaN; B = NaN;
If an error-handling function is not specified, the error from the call to
fun is rethrown.
