Сравнение массивов с операторами отношения

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

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

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

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

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

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

InfNaNNAT, и неопределенные Сравнения Элемента

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

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

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

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

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

Используйте операторы отношения в сочетании с логическими операторами A & B (И), A | B (ИЛИ), 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

Для большего количества примеров смотрите, Находят Элементы массива, Которые Удовлетворяют Условию.

Смотрите также

| | | | |

Похожие темы