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