Операторы отношения и их функции
Операторы отношения служат для сравнения двух величин, векторов или матриц. Все операторы отношения имеют два операнда, например х и у, и записываются, как показано в табл. 8.2.
Таблица 8.2. Операторы и функции отношения.
Функция | Название | Оператор | Пример |
---|---|---|---|
Eq | Равно | = = | x = = y |
Ne | Не равно | ~ = | x ~ = y |
Lt | Меньше чем | < | x<y |
Gt | Больше чем | > | x>y |
Le | Меньше или равно | <= | x<=y |
Ge | Больше или равно | >= | x>=y |
Данные операторы выполняют поэлементное сравнение векторов или матриц одинакового размера и возвращают значение 1 (True), если элементы идентичны, и значение 0 (False) в противном случае. Если операнды – действительные числа, то применение операторов отношения тривиально:
>
>
eq(
2.2
)
ans
=
1
>
>
2
=
=
2
ans
=
1
>
>
ne(
1
,
2
)
ans
=
1
>
>
2
~
-
2
ans
=
0
>
>
5
>
3
ans
=
1
>
>
le(
5.3
)
ans
=
0
Следует отметить, что операторы <, <=, > и >= при комплексных операндах используют для сравнения только действительные части операндов – мнимые отбрасываются. В то же время операторы == и ~= ведут сравнение с учетом как действительной, так и мнимой частей операндов. Следующие примеры поясняют это положение:
>
>
(
2
+
3i
)
>
-
(
2
+
i)
ans
=
1
>
>
(
2
+
3i
)
>
(
2
+
i)
ans
=
0
>
>
abs(
2
+
3i
)
>
abs(
2
+
i)
ans
=
1
>
>
(
2
+
3i
)
-
(
2
+
i)
ans
=
0
>
>
(
2
+
3i
)
-
(
2
+
i)
ans
=
1
Если один из операндов – скаляр, происходит сравнение всех элементов второго операнда-массива со значением этого скаляра:
M
=
-
1
0
1
2
>
>
M
>
=
0
ans
=
0
1
1
1
В общем случае операторы отношения сравнивают два массива одного размера и выдают результат в виде массива того же размера:
>
>
M
>
[
0
1
;.
1
0
]
ans
=
0
0
0
1
Таким образом, спектр применения операторов отношения в системе MATLAB шире, чем в обычных языках программирования, поскольку операндами являются не только числа, но и векторы, матрицы и массивы. Возможно применение операторов отношения и к символьным выражениям:
>
>
'b'
>
'a'
ans
=
1
>
>
'abc'
=
=
'abc'
ans
=
1
1
1
>
>
'cba'
<
'abc'
ans
=
0
0
1
В этом случае символы, входящие в выражения, представляются своими ASCII-кодами. Строки воспринимаются как векторы, содержащие значения кодов. Все это надо учитывать при использовании управляющих структур языка программирования, в которых широко применяются операторы отношения.