Реляционные операторы сравнивают операнды количественно, используя такие операторы, как «меньше», «больше» и «не равно». Результатом реляционного сравнения является логический массив, указывающий местоположения, где отношение верно.
Это реляционные операторы в 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
Для получения дополнительных примеров смотрите Найти элементы массива, которые удовлетворяют условию.