Сравнение массивов с реляционными операторами

Реляционные операторы сравнивают операнды количественно, используя такие операторы, как «меньше», «больше» и «не равно». Результатом реляционного сравнения является логический массив, указывающий местоположения, где отношение верно.

Это реляционные операторы в MATLAB®.

СимволФункциональный эквивалентОписание
<lt

Меньше, чем

<=le

Меньше чем или равно

>gt

Больше, чем

>=ge

Больше или равно

==eq

Равно

~=ne

Не равно

Сравнение массивов

Числовые массивы

Реляционные операторы выполняют поэлементные сравнения между двумя массивами. Массивы должны иметь совместимые размеры, чтобы облегчить операцию. Массивы с совместимыми размерами неявно расширяются таким образом, чтобы они были одинаковыми по размеру во время выполнения вычисления. В самых простых случаях два операнда являются массивами одинакового размера или один является скаляром. Для получения дополнительной информации см. «Совместимые размеры массивов для основных операций».

Для примера, если вы сравниваете две матрицы одного размера, то результатом является логическая матрица того же размера с элементами, указывающими, где отношение верно.

A = [2 4 6; 8 10 12]
A =

     2     4     6
     8    10    12
B = [5 5 5; 9 9 9]
B =

     5     5     5
     9     9     9
A < B
ans =

     1     1     0
     1     0     0

Точно так же можно сравнить один из массивов со скаляром.

A > 7
ans =

     0     0     0
     1     1     1

Если вы сравниваете 1-by- N вектор-строка в M-by- 1 Вектор-столбец MATLAB расширяет каждый вектор в M-by- N матрица перед выполнением сравнения. Получившаяся матрица содержит результат сравнения для каждой комбинации элементов в векторах.

A = 1:3
A =

     1     2     3
B = [2; 3]
B =

     2
     3
A >= B
ans =

     0     1     1
     0     0     1

Пустые массивы

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

A = ones(3,0);
B = ones(3,1);
A == B
ans =

   Empty matrix: 3-by-0

Однако выражения, такие как

A == []

возвращает ошибку, если A не является 0 на 0 или 1 на 1. Это поведение соответствует поведению всех других двоичных операторов, таких как +, -, >, <, &, |и так далее.

Чтобы протестировать пустые массивы, используйте isempty(A).

Комплексные числа

  • Операторы >, <, >=, и <= использовать только действительную часть операндов при выполнении сравнений.

  • Операторы == и ~= испытать как реальную, так и мнимую части операндов.

Inf, NaN, NaT, и неопределенные сравнения элементов

  • Inf значения равны другим Inf значения.

  • NaN значения не равны никакому другому числовому значению, включая другие NaN значения.

  • NaT значения не равны никаким другим значениям datetime, включая другие NaT значения.

  • Неопределенные категориальные элементы не равны никаким другим категориальным значениям, включая другие неопределенные элементы.

Логические операторы

Используйте реляционные операторы в сочетании с логическими операторами A & B (AND), A | B (OR), xor(A,B) (XOR), и ~A (НЕ), чтобы создать строку более сложных логических операторов.

Для примера можно найти, где отрицательные элементы происходят в двух массивах.

A = [2 -1; -3 10]
A =

     2    -1
    -3    10
B = [0 -2; -3 -1]
B =

     0    -2
    -3    -1
A<0 & B<0
ans =

     0     1
     1     0

Для получения дополнительных примеров смотрите Найти элементы массива, которые удовлетворяют условию.

См. также

| | | | |

Похожие темы