Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Glava_2a70_2014.doc
Скачиваний:
5
Добавлен:
01.07.2025
Размер:
5 Мб
Скачать
☆

2.13.2. Логические операции.

Логические операции над вещественными числами (логические связки) обозначаются знаками, представленными в таблице 2.13.3.

Представленные в таблице 2.13.3 логические операторы предназначены для выполнения поэлементных логических операций над массивами одинаковых размеров. Заметим, что первые две операции, приведенные в таблице 2.13.2, являются двухоперандными (бинарными), а последняя операция является однооперандной (унарной). Соответственно знак ~ ставится перед операндом, а знаки & и | ставятся между операндами.

Логические операции трактуют свои операнды как «истинные» (не равные нулю) и «ложные» (равные нулю). Если оба операнда операции «Логическое И» истины (не равны нулю), то результат этой операции равен 1 («истина»), во всех же остальных случаях операция «Логическое И» возвращает значение 0 (ложь). Операция «Логическое ИЛИ» возвращает 0 (ложь) только лишь в случае, когда являются ложными (равными нулю) оба операнда). Операция «Логическое НЕ» инвертирует ложь на истину и наоборот, т.е. если ее операндом является ненулевое число, то эта операция возвращает 0, ну а если операнд нулевой, то тогда значением рассматриваемой операции будет единица.

Таблица 2.13.3. Обозначение логических операций (логических связок).

Операция

Обозначение

в системе MATLAB

(логические

операторы)

Справочно – обозначение

в языке программирования FORTRAN (стандарт Fortran 90 и позднее).

Логическое И

&

.and.

Логическое ИЛИ

|

.or.

Логическое НЕ

~

.not.

Таблица 2.13.4. Функции, соответствующие логическим операциям.

Операция

Функция

в системе MATLAB

Логическое И

and

Логическое ИЛИ

or

Логическое НЕ

not

Исключающее ИЛИ

xor

Таблица 2.13.5. Работа логических операторов и функций.

x

y

x&y

and(x,y)

x|y

or(x,y)

~x

(not x)

xor(x,y)

0

0

0

0

1

0

0

1

0

1

1

1

1

0

0

1

0

1

1

1

1

1

0

0

Функции, соответствующие операциям сравнения и логическим операторам, приведены в таблице 2.13.4. Соответствие функций операторам и командам в системе MATLAB является одним из основных положений программирования, позволяющим одновременно использовать элементы как операторного, так и функционального программирования.

Более наглядное представление о работе логических операторов дает таблица 2.13.5, где в качестве операндов используются значения 0 и 1.

Помимо перечисленных в таблице 2.13.4, система MATLAB включает следующие функции:

any – возвращает 1, если в заданном векторе есть хотя бы один ненулевой элемент; если аргументом является матрица, результат выдается в виде вектора, элементы которого соответствуют столбцам заданной матрицы;

all – возвращает 1, если среди элементов исходного вектора нет нулевых; если аргументом является матрица, результат выдается в виде вектора, элементы которого соответствуют столбцам заданной матрицы.

Приведем пример:

>> A=[1 0 4; 5 0 0; 6 0 1]

A =

1 0 4

5 0 0

6 0 1

>> any(A)

ans =

1 0 1

>> all(A)

ans =

1 0 0

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]