datasetfun

Класс: набор данных

Примените функцию к переменным типа массив набора данных

Тип данных 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 th элемент b равен fun, применился к i th переменная набора данных A. fun является указателем на функцию к функции, которая берет один входной параметр и возвращает скалярное значение. fun должен возвращаемые значения того же класса каждый раз, когда это называется, и datasetfun конкатенирует их в векторный b. Выходные параметры от fun должны быть одним из следующих типов: числовой, логический, символ, структура или ячейка.

Чтобы применить функции, которые возвращают результаты, которые являются нескалярными или различных размеров и типов, используйте 'UniformOutput' или параметры 'DatasetOutput', описанные ниже.

Не полагайтесь на порядок, в котором datasetfun вычисляет элементы b, который не задан.

Если fun связан больше чем с одной встроенной функцией или файлом, (то есть, если это представляет набор перегруженных функций), datasetfun следует за MATLAB, диспетчеризирующим правила в вызывании функции. (См. Порядок приоритета функций (MATLAB).)

[b,c,...] = datasetfun(fun,A), то, где fun является указателем на функцию к функции, которая возвращает несколько выходных параметров, возвращает векторы b, c..., каждый соответствующий одному из выходных аргументов fun. datasetfun вызывает fun каждый раз со столькими же выходных параметров, сколько существует в вызове datasetfun. fun может возвратить выходные аргументы, имеющие различные классы, но класс каждого вывода должен быть тем же каждым разом, когда fun называется.

[b,...] = datasetfun(fun,A,...,'UniformOutput',false) позволяет вам задавать функциональный fun, который возвращает значения различных размеров или типов. datasetfun возвращает массив ячеек (или несколько массивов ячеек), где i th ячейка содержит значение fun, применился к i th переменная набора данных 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' верен, выходные параметры обработчика ошибок должны также быть скалярами того же типа как выходные параметры fun. Например, следующий код мог быть сохранен в файле как функция обработки ошибок:

function [A,B] = errorFunc(S,varargin)

warning(S.identifier,S.message); 
A = NaN; 
B = NaN;

Если функция обработки ошибок не задана, ошибка от вызова до fun повторно выдана.

Примеры

развернуть все

Используйте указатели на функцию, чтобы вычислить среднее значение и построить гистограмму выбранных переменных в массиве набора данных.

Загрузите выборочные данные.

load hospital

Используйте datasetfun, чтобы вычислить средние значения переменных Weight и BloodPressure и сохранить результаты в массиве набора данных.

stats = datasetfun(@mean,hospital,...
        'DataVars',{'Weight','BloodPressure'},...
        'UniformOutput',false)
stats = 1x2 cell array
    {[154]}    {1x2 double}

Переменная BloodPressure содержит два столбца: Один для систолического измерения, и один для диастолического измерения.

Отобразите среднее значение переменной кровяного давления.

stats{2}
ans = 1×2

  122.7800   82.9600

Постройте гистограмму переменной кровяного давления.

datasetfun(@hist,hospital,...
           'DataVars','BloodPressure',...
           'UniformOutput',false);
title('{\bf Blood Pressure}')
legend('Systolic','Diastolic','Location','N')

Смотрите также