Операторы отношения сравнивают операнды количественно, с помощью операторов как “меньше, чем”, “больше, чем”, и “не равняются”. Результатом реляционного сравнения является логический массив, указывающий на местоположения, где отношение верно.
Это операторы отношения в MATLAB®.
Символ | Функциональный эквивалент | Описание |
---|---|---|
< | < | Меньше, чем |
<= | le | Меньше чем или равный |
> | > | Больше, чем |
>= | 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
Для большего количества примеров смотрите, Находят Элементы массива, Которые Удовлетворяют Условию.