номинал

Массивы для номинальных данных

nominal и типы данных массива ordinal могут быть удалены в будущем релизе. Чтобы представлять упорядоченный и неупорядоченные дискретные, нечисловые данные, используйте Категориальные массивы (MATLAB) тип данных вместо этого.

Описание

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

Можно управлять массивами nominal как обычные числовые массивы, путем индексирования, конкатенируя, и изменение. Используйте массивы nominal в качестве группирующих переменных, когда элементы указывают на группу, которой принадлежит наблюдение.

Создание

Синтаксис

B = nominal(X)
B = nominal(X,labels)
B = nominal(X,labels,levels)
B = nominal(X,labels,[],edges)

Описание

B = nominal(X) создает номинальный массив B из массива X. nominal создает уровни B от отсортированных уникальных значений в X и создает метки по умолчанию для уровней.

пример

B = nominal(X,labels) маркирует уровни в B согласно labels.

B = nominal(X,labels,levels) создает номинальный массив с возможными уровнями, заданными levels.

B = nominal(X,labels,[],edges) создает номинальный массив раскладыванием числовой массив X с ребрами интервала, данными числовым векторным edges.

Входные параметры

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

Входной массив, чтобы преобразовать в nominal, заданный как числовое, логическое, символ, строка, или категориальный массив или массив ячеек из символьных векторов. Уровни получившегося массива nominal соответствуют отсортированным уникальным значениям в X.

Метки для дискретных уровней, заданных как символьный массив, массив строк или массив ячеек из символьных векторов. По умолчанию nominal присваивает метки уровням в B в порядке отсортированных уникальных значений в X.

Можно включать дублирующиеся метки в labels, чтобы объединить несколько значений в X на один уровень в B.

Типы данных: char | string | cell

Возможные номинальные уровни для массива вывода nominal, заданного как вектор, значения которого могут сравниться с теми в X с помощью оператора равенства. nominal присваивает метки каждому уровню от соответствующих элементов labels. Если X содержит какие-либо значения, не существующие в levels, уровни соответствующих элементов B не определены.

Ребра интервала раньше создавали номинальный массив раскладыванием числовой массив, заданный как числовой вектор. Верхний интервал включает значения, равные самому правому ребру. nominal присваивает метки каждому уровню в получившемся номинальном массиве от соответствующих элементов labels. Когда вы задаете входной параметр edges, он должен иметь еще один элемент, чем labels.

Выходные аргументы

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

Номинальный массив, возвращенный как объект nominal массивов.

По умолчанию элемент B не определен, если соответствующим элементом X является NaN (когда X является числовым), пустой символьный вектор (когда X является символом), пустая или отсутствующая строка (когда X является строкой), или неопределенный (когда X является категориальным). nominal обрабатывает такие элементы как неопределенные или недостающие и не включает записи для них среди возможных уровней. Чтобы создать явный уровень для таких элементов вместо того, чтобы обработать их как неопределенных, используйте входной параметр levels и включайте NaN, пустой символьный вектор, пустую или отсутствующую строку или неопределенный элемент.

Свойства

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

Это свойство доступно только для чтения.

Метки уровня, заданные как массив ячеек из символьных векторов. Доступ к меткам с помощью getlabels.

Типы данных: cell

Это свойство доступно только для чтения.

Маркируйте для неопределенных уровней, заданных как '<undefined>'. Можно найти неопределенные элементы в категориальных массивах при помощи isundefined.

Функции объекта

addlevelsДобавьте уровни в номинальные или порядковые массивы
droplevelsИсключите уровни из номинального или порядкового массива
getlabelsДоступ к номинальным или порядковым меткам массивов
getlevelsДоступ к номинальным или порядковым уровням массива
islevelОпределите, находятся ли уровни в номинальном или порядковом массиве
levelcountsЭлемент рассчитывает уровнем номинального или порядкового массива
mergelevelsОбъедините уровни номинальных или порядковых массивов
reorderlevelsПереупорядочьте уровни номинальных или порядковых массивов
setlabelsПрисвойте метки уровням номинальных или порядковых массивов

Следующее является частичным списком многих других функций массива MATLAB®, которые можно использовать с номинальными массивами. Для полного списка смотрите, что Другие функции MATLAB Поддерживают Номинальные и Порядковые Массивы.

doubleМассивы с двойной точностью
histogramГрафик гистограммы
isequalОпределите равенство массивов
isundefinedНайдите неопределенные элементы в категориальном массиве
pieКруговая диаграмма
summaryРаспечатайте сводные данные таблицы, расписания или категориального массива
timesПоэлементное умножение

Примеры

свернуть все

Создайте номинальные массивы из массива ячеек из символьных векторов и из целочисленных данных. Обеспечьте явные метки.

Создайте номинальный массив из массива ячеек из символьных векторов со значениями 'r', 'g' и 'b'. Маркируйте эти уровни 'red', 'green' и 'blue', соответственно. nominal присваивает метки согласно отсортированному (алфавитному) порядку элементов в X.

X = {'r' 'b' 'g';'g' 'r' 'b';'b' 'r' 'g'}
X = 3x3 cell array
    {'r'}    {'b'}    {'g'}
    {'g'}    {'r'}    {'b'}
    {'b'}    {'r'}    {'g'}

labels = {'blue','green','red'};
B = nominal(X,labels)
B = 3x3 nominal array
     red        blue      green 
     green      red       blue  
     blue       red       green 

Создайте номинальный массив из целочисленных данных со значениями 1 - 4, объединение четных и нечетных значений на два номинальных уровня с маркирует 'odd' и 'even'. Объедините значения путем дублирования меток.

X = randi([1 4],5,2)
X = 5×2

     4     1
     4     2
     1     3
     4     4
     3     4

labels = {'odd','even','odd','even'};
B = nominal(X,labels)
B = 5x2 nominal array
     even      odd  
     even      even 
     odd       odd  
     even      even 
     odd       even 

Создайте номинальный массив из данных в массиве ячеек.

X = {'r','b','g';'g','r','b';'b','r','g'};
labels = {'blue','green','red'};
colors = nominal(X,labels)
colors = 3x3 nominal array
     red        blue      green 
     green      red       blue  
     blue       red       green 

Идентифицируйте элементы в colors, которые являются членами уровня 'red'. Значение 1 в полученном массиве указывает, что соответствующий элемент colors является членом 'red'.

colors == 'red'
ans = 3x3 logical array

   1   0   0
   0   1   0
   0   1   0

Идентифицируйте элементы в colors, которые являются членами или уровня 'red' или 'blue'.

ismember(colors,{'red','blue'})
ans = 3x3 logical array

   1   1   0
   0   1   1
   1   1   0

Объедините элементы 'red', и уровни 'blue' на новый уровень маркировали 'purple'.

colors = mergelevels(colors,{'red','blue'},'purple')
colors = 3x3 nominal array
     purple      purple      green  
     green       purple      purple 
     purple      purple      green  

Отобразите уровни colors.

getlevels(colors)
ans = 1x2 nominal array
     purple      green 

Обобщите число элементов на каждом уровне. По умолчанию summary возвращает счета для каждого столбца входного массива.

summary(colors)
     purple      2      3      1 
     green       1      0      2 

Создайте круговую диаграмму для данных в colors.

pie(colors)

Представленный в R2007a