Класс: набор данных
(Не рекомендуется) Применить функцию к переменным массива наборов данных
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. i-й элемент b равно fun применяется к i-ой переменной набора данных A. fun - дескриптор функции, принимающий один входной аргумент и возвращающий скалярное значение. fun должен возвращать значения одного и того же класса при каждом вызове, и datasetfun объединяет их в вектор b. Выходные данные fun должен быть одним из следующих типов: числовой, логический, символьный, структурный или клеточный.
Чтобы применить функции, возвращающие нескалярные результаты или различные размеры и типы, используйте 'UniformOutput' или 'DatasetOutput' параметры, описанные ниже.
Не полагайтесь на порядок, в котором datasetfun вычисляет элементы b, который не указан.
Если fun привязан к нескольким встроенным функциям или файлам (т.е. если он представляет собой набор перегруженных функций), datasetfun при вызове функции следует правилам диспетчеризации MATLAB. (См. раздел Порядок очередности функций.)
[b,c,...] = datasetfun(fun,A), где fun - дескриптор функции для функции, которая возвращает несколько выходов, возвращает векторы b, c,..., каждый соответствующий одному из выходных аргументов fun. datasetfun требования fun каждый раз с таким количеством выходов, какое имеется в вызове datasetfun. fun может возвращать выходные аргументы, имеющие различные классы, но класс каждого вывода должен быть одинаковым каждый раз fun вызывается.
[b,...] = datasetfun(fun,A,...,'UniformOutput',false) позволяет указать функцию fun возвращает значения различных размеров или типов. datasetfun возвращает массив ячеек (или несколько массивов ячеек), где i-я ячейка содержит значение fun применяется к i-ой переменной набора данных A. Настройка 'UniformOutput' кому true эквивалентно поведению по умолчанию.
[b,...] = datasetfun(fun,A,...,'DatasetOutput',true) указывает, что выходные данные fun возвращаются в виде переменных в массиве набора данных (или нескольких массивах наборов данных). fun должен возвращать значения с одинаковым количеством строк при каждом вызове, но может возвращать значения любого типа. Переменные в массиве (массивах) выходных наборов данных имеют те же имена, что и переменные во входных данных. Настройка'DatasetOutput' кому false (по умолчанию) указывает, что тип выходных данных изdatasetfun определяется 'UniformOutput'.
[b,...] = datasetfun(fun,A,...,'DataVars',vars) позволяет применять fun только для переменных набора данных в A указано vars. vars - положительное целое число, вектор положительных целых чисел, символьный вектор, строковый массив, клеточный массив символьных векторов или логический вектор.
[b,...] = datasetfun(fun,A,...,'ObsNames',obsnames) указывает имена наблюдений для вывода набора данных, когда 'DatasetOutput' является true.
[b,...] = datasetfun(fun,A,...,'ErrorHandler',efun), где efun является дескриптором функции, определяет функцию MATLAB для вызова, если вызов fun не удается. Функция обработки ошибок вызывается со следующими входными аргументами:
Структура с полями identifier, message, и index, содержащий соответственно идентификатор возникшей ошибки, текст сообщения об ошибке и линейный индекс во входной массив (массивы), в котором произошла ошибка
Набор входных аргументов, при которых произошел сбой вызова функции
Функция обработки ошибок должна либо повторно выдать ошибку, либо возвращать то же количество выходов, что и fun. Эти выходы затем возвращаются как выходы datasetfun. Если 'UniformOutput' true, выходы обработчика ошибок также должны быть скалярами того же типа, что и выходы fun. Например, следующий код может быть сохранен в файле как функция обработки ошибок:
function [A,B] = errorFunc(S,varargin) warning(S.identifier,S.message); A = NaN; B = NaN;
Если функция обработки ошибок не указана, ошибка при вызове fun перевоспитывается.