sortrows

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

(Не Рекомендуемый) Сортировка строк массива набора данных

The dataset тип данных не рекомендуется. Для работы с неоднородными данными используйте MATLAB® table вместо этого тип данных. См. MATLAB table документация для получения дополнительной информации.

Синтаксис

B = sortrows(A)
B = sortrows(A,vars)
B = sortrows(A,'obsnames')
B = sortrows(A,vars,mode)
[B,idx] = sortrows(A)

Описание

B = sortrows(A) возвращает копию массива набора данных A, с наблюдениями, отсортированными в порядке возрастания по всем переменным в A. Наблюдения в B сортируются сначала по первой переменной, далее по второй переменной и так далее. Каждая переменная в A должен быть допустимым входом для sortили, если переменная имеет несколько столбцов, в MATLAB sortrows функцию или своему собственному sortrows способ.

B = sortrows(A,vars) сортирует наблюдения в A переменными, заданными как vars. vars - положительное целое число, вектор положительных целых чисел, вектор символов, строковые массивы, массив ячеек векторов символов или логический вектор.

B = sortrows(A,'obsnames') сортирует наблюдения в A по имени наблюдения.

B = sortrows(A,vars,mode) сортирует в направлении, заданном mode. Когда mode является 'ascend' (по умолчанию) или 'descend', sortrows сортировки A переменными, заданными как vars в порядке возрастания или убывания соответственно. mode может также быть строковые массивы или массив ячеек, содержащий 'ascend' или 'descend', чтобы задать другое направление сортировки для каждой переменной в vars. Задайте [] для vars для сортировки с использованием всех переменных.

[B,idx] = sortrows(A) также возвращает вектор индекса idx таким образом B = A(idx,:).

Примеры

Отсортируйте данные в hospital.mat по возрасту и далее по фамилии:

load hospital
hospital(1:5,1:3)
ans = 
            LastName       Sex       Age
 YPL-320    'SMITH'        Male      38 
 GLI-532    'JOHNSON'      Male      43 
 PNI-258    'WILLIAMS'     Female    38 
 MIJ-579    'JONES'        Female    40 
 XLK-030    'BROWN'        Female    49 

hospital = sortrows(hospital,{'Age','LastName'});
hospital(1:5,1:3)
ans = 
            LastName       Sex       Age
 REV-997    'ALEXANDER'    Male      25 
 FZR-250    'HALL'         Male      25 
 LIM-480    'HILL'         Female    25 
 XUE-826    'JACKSON'      Male      25 
 SCQ-914    'JAMES'        Male      25 

Отсортируйте данные в hospital по полу в порядке возрастания и возрасту в порядке убывания.

hospital = sortrows(hospital,{'Sex','Age'},{'ascend','descend'});
hospital(1:5,1:3)
ans = 

               LastName        Sex       Age
    XLK-030    'BROWN'         Female    49 
    GGU-691    'HUGHES'        Female    49 
    KKL-155    'ADAMS'         Female    48 
    HQO-561    'BRYANT'        Female    48 
    BKD-785    'CLARK'         Female    48 

hospital(end-4:end,1:3)
ans = 

               LastName           Sex     Age
    VNL-702    'MOORE'            Male    28 
    REV-997    'ALEXANDER'        Male    25 
    FZR-250    'HALL'             Male    25 
    XUE-826    'JACKSON'          Male    25 
    SCQ-914    'JAMES'            Male    25