exponenta event banner

issortedrows

Определение сортировки строк матрицы или таблицы

Описание

пример

TF = issortedrows(A) возвращает логический скаляр 1 (true), когда элементы первого столбца матрицы A перечислены в порядке возрастания. В противном случае issortedrows возвращает 0 (false). Если первый столбец имеет последовательные повторяющиеся элементы, issortedrows определяет, находится ли следующий столбец в порядке возрастания, и повторяет это поведение для последующих равных значений.

пример

TF = issortedrows(A,column) возвращает 1, когда A сортируется по столбцам, указанным в векторе column. Например, issortedrows(A,[4 6]) сначала проверяет, является ли четвертый столбец A находится в порядке возрастания, затем проверяет, находится ли шестой столбец в порядке возрастания, чтобы разорвать связи.

пример

TF = issortedrows(___,direction) возвращает 1, когда первый столбец A находится в порядке, указанном в direction для любого из предыдущих синтаксисов. Например, issortedrows(A,'monotonic') проверяет, является ли первый столбец A находится в порядке возрастания или убывания. direction также может быть массивом ячеек символьных векторов, представляющих множество направлений для каждого проверяемого столбца. Например, issortedrows(A,[2 3],{'ascend' 'descend'}) проверяет, является ли второй столбец A находится в порядке возрастания, затем проверяет, находится ли третий столбец в порядке убывания для разрыва связей.

пример

TF = issortedrows(___,Name,Value) указывает дополнительные параметры для проверки порядка сортировки. Например, issortedrows(A,'ComparisonMethod','abs') проверяет, находятся ли элементы в первом столбце A сортируются по величине.

пример

TF = issortedrows(tblA) проверяет, находятся ли строки таблицы в порядке возрастания на основе элементов в первой переменной. Если элементы в первой переменной повторяются, то issortedrows проверяет элементы во второй переменной и т.д.

Если tblA является расписанием, то issortedrows проверяет, являются ли строки tblA находятся в порядке возрастания на основе времени строки. Время строк расписания помечает строки вдоль первого измерения расписания.

пример

TF = issortedrows(tblA,'RowNames') проверяет, находятся ли строки таблицы в порядке возрастания на основе их имен. Имена строк таблицы помечают строки вдоль первого измерения таблицы.

Этот синтаксис не поддерживается, если tblA - это расписание.

пример

TF = issortedrows(tblA,rowDimName) проверяет, отсортированы ли строки таблицы по меткам строк rowDimName вдоль первого размера.

  • Если tblA является таблицей, то метки являются именами строк.

  • Если tblA является расписанием, то метки - время строки.

пример

TF = issortedrows(tblA,vars) проверяет, находятся ли строки таблицы в порядке возрастания на основе элементов в переменных vars. Например, если Age и Weight являются переменными tblA, то issortedrows(tblA,{'Age','Weight'}) проверяет, находятся ли строки в порядке возрастания по возрасту, а затем по весу для разрыва связей.

  • Если tblA является таблицей с именами строк, то vars может включать имена строк.

  • Если tblA является расписанием, то vars может включать время строки.

пример

TF = issortedrows(___,direction) проверяет, отсортирована ли таблица в порядке, указанном в direction для любого из предыдущих синтаксисов таблицы. direction может быть одиночным порядком сортировки, например 'descend' или 'monotonic', которая применяется к каждой указанной переменной, имени строки или времени строки. direction также может быть массивом ячеек, элементы которого содержат различные порядки сортировки для каждой указанной переменной, имени строки или времени строки, issortedrows работает.

пример

TF = issortedrows(___,Name,Value) задает дополнительные параметры для сортировки таблиц. Например, issortedrows(tblA,'Var1','MissingPlacement','first') проверяет отсутствующие элементы в Var1, такие как NaN или NaT, размещаются в начале таблицы.

Примеры

свернуть все

Создайте матрицу и определите, находятся ли ее строки в порядке возрастания на основе значений в первом столбце. Поскольку первый столбец имеет повторяющийся элемент, sortrows ищет второй столбец, чтобы определить, отсортированы ли строки матрицы.

A = [1 2 9; 1 5 8; 4 0 7]
A = 3×3

     1     2     9
     1     5     8
     4     0     7

TF = issortedrows(A)
TF = logical
   1

Определите, являются ли строки A в порядке возрастания на основе значений в третьем столбце.

TF = issortedrows(A,3)
TF = logical
   0

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

TF = issortedrows(A,3,'descend')
TF = logical
   1

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

A = [1+i 2i; 1+2i 3+4i]
A = 2×2 complex

   1.0000 + 1.0000i   0.0000 + 2.0000i
   1.0000 + 2.0000i   3.0000 + 4.0000i

TF = issortedrows(A,'ComparisonMethod','real')
TF = logical
   1

Для таблицы, описывающей информацию о пациенте для пяти человек, определите, как сортируются строки таблицы.

Создайте таблицу с четырьмя переменными и определите, находятся ли строки таблицы в порядке возрастания на основе возраста. Поскольку возрастная переменная содержит повторяющийся элемент, issortedrows затем проверяет следующий столбец (Height) разорвать галстук.

LastName = {'Sweet';'Jacobson';'Wang';'Joiner';'Berger'};
Age = [38;38;40;43;49];
Height = [69;71;64;67;64];
Weight = [176;163;131;133;119];
BloodPressure = [124 93; 109 77; 125 83; 117 75; 122 80];

tblA = table(Age,Height,Weight,BloodPressure,'RowNames',LastName)
tblA=5×4 table
                Age    Height    Weight    BloodPressure
                ___    ______    ______    _____________

    Sweet       38       69       176       124     93  
    Jacobson    38       71       163       109     77  
    Wang        40       64       131       125     83  
    Joiner      43       67       133       117     75  
    Berger      49       64       119       122     80  

TF = issortedrows(tblA)
TF = logical
   1

Проверьте, отсортированы ли строки таблицы по фамилиям, которые являются именами строк для tblA.

TF = issortedrows(tblA,'RowNames')
TF = logical
   0

Проверьте, находятся ли строки таблицы в порядке возрастания по возрасту, а затем в порядке убывания по весу.

TF = issortedrows(tblA,{'Age','Weight'},{'ascend','descend'})
TF = logical
   1

Создайте расписание и проверьте, что строки расписания расположены в порядке возрастания на основе времени строк. Также проверьте, что недостающие элементы размещены последними.

Time = [seconds(1:3) NaN NaN]';
TT = timetable(Time,[98;97.5;97.9;98.1;99.9],[120;111;119;117;112],...
               'VariableNames',{'Temperature','Distance'})
TT=5×2 timetable
     Time      Temperature    Distance
    _______    ___________    ________

    1 sec           98          120   
    2 sec         97.5          111   
    3 sec         97.9          119   
    NaN sec       98.1          117   
    NaN sec       99.9          112   

TF = issortedrows(TT,'Time','MissingPlacement','last')
TF = logical
   1

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

свернуть все

Входной массив, заданный как вектор столбца или матрица.

Типы данных: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | categorical | datetime | duration
Поддержка комплексного номера: Да

Вектор сортировки столбцов, заданный как ненулевой целочисленный скаляр или вектор ненулевых целых чисел. Каждое указанное целое значение указывает столбец для проверки порядка сортировки. Отрицательные целые числа указывают на то, что порядок сортировки уменьшается.

Направление сортировки, указанное как одно из следующих:

  • 'ascend' (по умолчанию) - проверяет, находятся ли данные в порядке возрастания. Данные могут содержать последовательные повторяющиеся элементы.

  • 'descend' - Проверка, находятся ли данные в порядке убывания. Данные могут содержать последовательные повторяющиеся элементы.

  • 'monotonic' - Проверка, находятся ли данные в порядке убывания или возрастания. Данные могут содержать последовательные повторяющиеся элементы.

  • 'strictascend' - Проверка, находятся ли данные в строгом порядке по возрастанию. Данные не могут содержать повторяющиеся или отсутствующие элементы.

  • 'strictdescend' - Проверка, находятся ли данные в строгом порядке убывания. Данные не могут содержать повторяющиеся или отсутствующие элементы.

  • 'strictmonotonic' - Проверка, находятся ли данные в строгом порядке по убыванию или по возрастанию. Данные не могут содержать повторяющиеся или отсутствующие элементы.

direction также может быть массивом ячеек, содержащим список этих символьных векторов, где каждый элемент в списке соответствует столбцу A. Например, issortedrows(A,[2 4],{'ascend' 'descend'}) сначала проверяет, являются ли строки A находятся в порядке возрастания на основе второго столбца. Затем, чтобы разорвать связи, issortedrows проверяет, находятся ли строки в порядке убывания на основе четвертого столбца.

Если column указывается, то количество элементов в массиве ячеек должно соответствовать длине column. Когда column не указан, массив ячеек должен содержать элемент для каждого столбца Aили один элемент, применяемый ко всем столбцам.

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

Входная таблица, заданная как таблица или расписание. Каждая переменная в tblA должен быть допустимым вводом в sort или sortrows.

Типы данных: table | timetable

Имя первого измерения входной таблицы или расписания, указанного как символьный вектор.

  • Если tblA является таблицей с именами строк, то rowDimName - имя первого измерения таблицы. По умолчанию имя первого размера: 'Row'. Имена измерений являются свойством таблиц. Можно получить доступ к именам размеров tblA использование tblA.Properties.DimensionNames.

  • Если tblA является расписанием, то rowDimName - имя вектора времени строки. Можно указать его имя при создании расписания, например: Time или Date. Можно также получить доступ к именам размеров с помощью tblA.Properties.DimensionNames.

Пример: Если таблица T имеет имена строк, и имя первого измерения было изменено с помощью T.Properties.DimensionName{1} = 'Name', то issortedrows(T,'Name') проверяет, отсортирована ли таблица по именам строк.

Пример: Если расписание TT имеет вектор времени с именем Date, то issortedrows(TT,'Date') проверяет, отсортировано ли расписание по датам и времени, Date содержит.

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

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

Если элемент vars является положительным целым числом, то issortedrows проверяет, находятся ли строки в соответствующей переменной в tblA находятся в порядке возрастания. Если элемент vars является отрицательным целым числом, то issortedrows проверяет, находятся ли строки в соответствующей переменной в tblA находятся в порядке убывания.

Пример: issortedrows(tblA,{'Height','Weight'}) проверяет, являются ли строки tblA находятся в порядке возрастания, сначала по переменной Height, затем по переменной Weight чтобы разорвать связи.

Пример: issortedrows(tblA,[1 4]) сначала проверяет, находятся ли строки таблицы в порядке возрастания на основе первой переменной, затем разрывает связи, проверяя, находятся ли строки в порядке возрастания на основе четвертой переменной.

Пример: issortedrows(TT,{'Time','X'}) проверяет, находятся ли время строк расписания в порядке возрастания, затем разрывает связи, проверяя, находятся ли строки в порядке возрастания на основе переменной таблицы 'X'.

Типы данных: double | single | char | cell | logical

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: issortedrows(A,'MissingPlacement','last')

Размещение недостающих значений (NaN, NaT, <undefined>, и missing) указывается как пара, разделенная запятыми, состоящая из 'MissingPlacement' и одно из следующих:

  • 'auto' - Недостающие элементы должны быть размещены последними в порядке возрастания и первыми в порядке убывания для возврата 1.

  • 'first' - Для возврата 1 необходимо сначала разместить отсутствующие элементы.

  • 'last' - Недостающие элементы должны быть размещены последними для возврата 1.

Метод сравнения элементов, указанный как разделенная запятыми пара, состоящая из 'ComparisonMethod' и одно из следующих:

  • 'auto' - Проверка наличия строк A сортируются по real(A) когда A является реальным и проверьте, являются ли строки A сортируются по abs(A) когда A является сложным.

  • 'real' - Проверка наличия строк A сортируются по real(A) когда A является реальным или сложным. Если столбец содержит элементы с последовательными равными действительными частями, проверьте imag(A) чтобы разорвать связи.

  • 'abs' - Проверка наличия строк A сортируются по abs(A) когда A является реальным или сложным. Если столбец имеет элементы с последовательными равными значениями, проверьте angle(A) в интервале (-δ, δ] для разрыва связей.

Расширенные возможности

.

См. также

| |

Представлен в R2017a