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