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 указатель на функцию к функции, которая возвращает несколько выходных параметров, возвращает векторы bC..., каждый соответствующий одному из выходных аргументов 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Вар положительное целое число, вектор положительных целых чисел, вектора символов, массива строк, массива ячеек из символьных векторов или логического вектора.

[b,...] = datasetfun(fun,A,...,'ObsNames',obsnames) задает имена наблюдения для набора данных выход когда 'DatasetOutput' true.

[b,...] = datasetfun(fun,A,...,'ErrorHandler',efun), где efun указатель на функцию, задает функцию MATLAB, чтобы вызвать если вызов fun сбои. Функция обработки ошибок вызвана со следующими входными параметрами:

  • Структура с полями identifierсообщение, и 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=1×2 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')

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