Класс: набор данных
(Не Рекомендуемый) Применить функцию к переменным массива набора данных
The 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 переметается.