nominal и типы данных массива ordinal могут быть удалены в будущем релизе. Чтобы представлять упорядоченный и неупорядоченные дискретные, нечисловые данные, используйте Категориальные массивы (MATLAB) тип данных вместо этого.
Этот пример показывает, как переупорядочить уровни категории в порядковом массиве с помощью reorderlevels.
Загрузка демонстрационных данных.
AllSizes = {'medium','large','small','small','medium',...
'large','medium','small'};Созданная переменная, AllSizes, является массивом ячеек из символьных векторов, содержащим измерения размера на восьми объектах.
Создайте порядковый массив.
Преобразуйте AllSizes в порядковый массив, не задавая порядок уровней категории.
size = ordinal(AllSizes); getlevels(size)
ans = 1x3 ordinal array
large medium small
По умолчанию категории упорядочены их метками в возрастающем алфавитном порядке, large <medium <small.
Сравните элементы.
Проверяйте, меньше ли первый объект (который имеет размер medium), чем второй объект (который имеет размер large).
size(1) < size(2)
ans = logical
0
0 логического значения указывает, что средний объект не меньше, чем большой объект.
Переупорядочьте уровни категории.
Переупорядочьте уровни категории так, чтобы small <medium <large.
size = reorderlevels(size,{'small','medium','large'});
getlevels(size)ans = 1x3 ordinal array
small medium large
Сравните элементы.
Проверьте, что первый объект теперь меньше, чем второй объект.
size(1) < size(2)
ans = logical
1
1 логического значения указывает, что ожидаемое неравенство теперь содержит.
Этот пример показывает, как переупорядочить уровни категории в номинальных массивах с помощью reorderlevels. По определению номинальные категории массивов не имеют никакого естественного упорядоченного расположения. Однако вы можете хотеть изменить порядок уровней в аналитических целях или отображении. Например, при подборе кривой модели регрессии категориальными ковариантами, fitlm использует первый уровень номинальной независимой переменной как ссылочная категория.
Загрузка демонстрационных данных.
Массив набора данных, hospital, содержит переменные, измеренные на 100 демонстрационных пациентах. Переменная Weight содержит вес каждого пациента. Переменная Sex является номинальной переменной, содержащей пол, Male или Female, для каждого пациента.
load hospital
getlevels(hospital.Sex)ans = 1x2 nominal array
Female Male
По умолчанию порядок номинальных категорий находится в возрастающем алфавитном порядке меток.
Отобразите на графике данные, сгруппированные по категориям уровень.
Чертите диаграммы веса, сгруппированного полом.
figure
boxplot(hospital.Weight,hospital.Sex)
title('Weight by Gender')
Диаграммы появляются в том же алфавитном порядке, возвращенном getlevels.
Измените порядок категории.
Измените порядок уровней категории.
hospital.Sex = reorderlevels(hospital.Sex,{'Male','Female'});
getlevels(hospital.Sex)ans = 1x2 nominal array
Male Female
Уровни находятся в недавно заданном порядке.
Отобразите данные на графике в новом порядке.
Чертите диаграммы веса полом.
figure
boxplot(hospital.Weight,hospital.Sex)
title('Weight by Gender')
Порядок диаграмм соответствует новому порядку уровня.
fitlm | getlevels | nominal | ordinal | reorderlevels