Операторы отношения и их функции
Операторы отношения служат для сравнения двух величин, векторов или матриц. Все операторы отношения имеют два операнда, например х и у, и записываются, как показано в табл. 8.2.
Таблица 8.2. Операторы и функции отношения
Функция |
Название |
Оператор |
Пример |
Eq |
Равно |
= = |
x = = y |
Ne |
He равно |
~ = |
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(l,2)
ans =
1
» 2 ~- 2
ans =
0
» 5 > 3
ans =
1
» le(5.3)
ans =
0
Логические операторы
Логические операторы и соответствующие им функции служат для реализации поэлементных логических операций над элементами одинаковых по размеру массивов (табл. 8.3).
Таблица 8.3. Логические операторы и функции MATLAB
Функция |
Название |
And |
Логическое И (AND) & |
Or |
Логическое ИЛИ (OR) | |
Not |
Логическое НЕ (NOT) ~ |
Хог |
Исключающее ИЛИ (EXCLUSIVE OR) |
Any |
Верно, если все элементы вектора равны нулю |
All |
Верно, если все элементы вектора не равны нулю |
Работа операторов поясняется приведенными ниже примерами:
»А=[1 2 3];
»В=[1 0 0];
» and(A.B)
ans =
1 0 0
» оr(А.В)
ans =
1 1 1
» А&В
ans =
1 0 0
» А|В
ans=
1 1 1
» not(А)
ans =
0 0 0
» not(B)
ans =
0 1 1
» ~B
ans=
0 1 1
» xor(A.B)
ans =
0 1 1
» any(A)
ans =
1
» all([0 0 0])
ans =
0
» all(B)
ans =
0
» and('abc','012')
ans =
1 1 1
Обратите внимание, что аргументами логических операторов могут быть числа и строки. При аргументах-числах логический нуль соответствует числовому нулю, а любое отличное от нуля число воспринимается как логическая единица. Для строк действует уже отмеченное правило — каждый символ строки представляется своим ASCII-кодом.
Функции округления и знака
Ряд особых функций служат для выполнения операций округления числовых данных и анализа их знака.
fix(A) — возвращает массив А с элементами, округленными до ближайшего к нулю целого числа. Для комплексного А действительные и мнимые части округляются отдельно.
» А=[1/3 2/3: 4.99 5.01]
А =
0.3333 0.6667
4.9900 5.0100
» fix(A)
ans =
0 0
4 5
floor(A) — возвращает А с элементами, представляющими ближайшее меньшее или равное соответствующему элементу А целое число. Для комплексного А действительные и мнимые части преобразуются отдельно.
ceil (A) — возвращает ближайшее большее или равное А целое число. Для комплексного А действительные и мнимые части округляются отдельно.
rem(X,Y) — возвращает X - fix(X./Y).*Y, где fix(X./Y) — целая часть от частного X/Y.
Если операнды X и Y имеют одинаковый знак, функция rem(X, Y) возвращает тот же результат, что mod(X.Y). Однако (для положительных X и Y) rem(-x.y) = mod(-x,y)-y. Функция rem возвращает результат, находящийся между 0 и sign(X)*abs(Y). Если Y=0, функция rem возвращает NaN. Аргументы X и Y должны быть целыми числами. Из-за неточного представления в компьютере чисел с плавающей запятой использование вещественных (или комплексных) входных аргументов может привести к непредвиденным результатам.
Пример:
» Х=[25 21 23 55 3];
» Y=[4 8 23 6 4];
» rem(X,Y)
ans=
1 5 0 1 3
round(X) — возвращает округленные до ближайшего целого элементы массива X. Для комплексного X действительные и мнимые части округляются отдельно.
Пример:
» Х=[5.675 21.6+4.897*1 2.654 55.8765];
» round(X)
ans =
6.0000 22.0000 +5.0000i 3.0000 56.0000
