ordinal

(Не Рекомендуемый) Массивы для порядковых данных

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

Описание

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

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

Создание

Описание

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

пример

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

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

пример

B = ordinal(X,labels,[],edges) создает ordinal array путем раскладывания числовой массив X с границами интервала, заданными числовым вектором edges.

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

расширить все

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

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

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

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

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

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

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

расширить все

Порядковый массив, возвращенный как ordinal объект массива.

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

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

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

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

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

Примеры

свернуть все

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

quality = ordinal([1 2 3 3 2 1 2 1 3],...
   {'low' 'medium' 'high'})
quality = 1x9 ordinal
  Columns 1 through 7

     low      medium      high      high      medium      low      medium 

  Columns 8 through 9

     low      high 

Показать, что первый элемент меньше, чем второй элемент (низкий меньше, чем средний).

quality(1) < quality(2)
ans = logical
   1

Создайте порядковый массив путем раскладывания значений от 0 до 1 на трети с метками 'small', 'medium', и 'large'.

X = rand(5,2)
X = 5×2

    0.8147    0.0975
    0.9058    0.2785
    0.1270    0.5469
    0.9134    0.9575
    0.6324    0.9649

A = ordinal(X,{'small' 'medium' 'large'},[],[0 1/3 2/3 1])
A = 5x2 ordinal
     large       small  
     large       small  
     small       medium 
     large       large  
     medium      large  

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

quality = ordinal([1 2 3; 3 2 1; 2 1 3],{'low' 'medium' 'high'})
quality = 3x3 ordinal
     low         medium      high 
     high        medium      low  
     medium      low         high 

Идентифицируйте элементы в quality которые являются представителями уровня, большего или равного 'medium'. Значение 1 в полученном массиве указывает, что соответствующий элемент quality является представителем этого уровня.

quality >= 'medium'
ans = 3x3 logical array

   0   1   1
   1   1   0
   1   0   1

Идентифицируйте элементы в quality которые являются представителями любого из уровней 'low' или 'high'.

ismember(quality,{'low' 'high'})
ans = 3x3 logical array

   1   0   1
   1   0   1
   0   1   1

Объедините элементы 'medium' и 'high' уровни в новый уровень, маркированный 'ok'.

quality = mergelevels(quality,{'medium','high'},'ok')
quality = 3x3 ordinal
     low      ok       ok  
     ok       ok       low 
     ok       low      ok  

Отображение уровней quality.

getlevels(quality)
ans = 1x2 ordinal
     low      ok 

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

summary(quality)
     low      1      1      1 
     ok       2      2      2 
Введенный в R2007a