exponenta event banner

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

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

Это реляционные операторы в 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около-N вектор строки к Mоколо-1 вектор столбца, затем MATLAB расширяет каждый вектор в Mоколо-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-by-0 или 1-by-1. Это поведение согласуется с поведением всех других бинарных операторов, таких как +, -, >, <, &, |и так далее.

Для проверки пустых массивов используйте isempty(A).

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

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

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

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

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

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

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

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

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

Использовать реляционные операторы совместно с логическими операторами A & B (И), A | B (ИЛИ), xor(A,B) (XOR), и ~A (NOT), чтобы объединить более сложные логические операторы.

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

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

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

См. также

| | | | |

Связанные темы