Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
matlab_final.doc
Скачиваний:
80
Добавлен:
24.09.2019
Размер:
5.3 Mб
Скачать

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

В MATLAB нет специального булевого типа переменных, в качестве булевого значения «Истина» могут выступать все числа, не равные 0 (как правило, используется 1), в качестве значения «Ложь» используется 0.

В таблице 3.1 перечислены некоторые логические операторы и функции.

Таблица 3.1

Логический оператор (функция)

Описание

>

Больше (поэлементное сравнение)

>=

Больше или равно (поэлементное сравнение)

<

Меньше (поэлементное сравнение)

<=

Меньше или равно (поэлементное сравнение)

==

Равно (поэлементное сравнение)

~=

Не равно (поэлементное сравнение)

&&

Логическое И (применяется для двух матриц, размером 1x1)

&

Логическое поэлементное И (применяет логическое И для каждого элемента матриц, стоящих слева и справа от оператора &)

||

Логическое ИЛИ (применяется для двух матриц, размером 1x1)

|

Логическое поэлементное ИЛИ (применяет логическое ИЛИ для каждого элемента матриц, стоящих слева и справа от оператора |)

~

Логическая поэлементная инверсия (НЕ)

xor

Поэлементное исключающее ИЛИ

any

Возвращает 1, если в матрице, переданной в качестве параметра, есть хотя бы один не нулевой элемент. В противном случае, функция возвращает 1.

all

Возвращает 1, если в матрице, переданной в качестве параметров, все элементы не нулевые. В противном случае функция возвращает 0.

isequal

Возвращает 1, если матрицы, переданные в качестве параметров этой функции равны (две матрицы A и B называются равными, если они имеют одинаковое число строк и столбцов и их соответствующие элементы равны).

В следующем примере демонстрируется работа некоторых логических операторов.

>> 3 == 3

ans =

1

>> 3 == 4

ans =

0

>> 2 >= 3

ans =

0

>> 5 < 10

ans =

1

>> 1 ~= 2

ans =

1

>> 1 && 0

ans =

0

>> 1 && 1

ans =

1

>> 1 || 0

ans =

1

>> xor (1, 1)

ans =

0

>> ~1

ans =

0

Особенностью перечисленных операторов в языке MATLAB является то, что почти все они (за исключением && и ||) являются поэлементными. При применении этих операторов к двум матрицам одинаковой размерности в качестве результата будет получена матрица той же размерности, каждый элемент которой будет получен применением логического оператора к двум соответствующим элементам исходных матриц. Например:

>> [1 2 3] > [0 5 -6]

ans =

1 0 1

>> [1 2 3; 4 5 6; 7 8 9] == [1 0 2; 9 8 6; 1 1 1]

ans =

1 0 0

0 0 1

0 0 0

>> [1 1 0 0] & [0 1 0 1]

ans =

0 1 0 0

>> xor ([1 1; 0 0], [0 1; 0 1])

ans =

1 0

0 1

Работа функций any, all и isequal продемонстрирована в следующем примере.

>> all ([1 1 1 1])

ans =

1

>> all ([1 1 0 1])

ans =

0

>> any ([1 1 0 1])

ans =

1

>> any ([0 0 0 0])

ans =

0

>> any ([0 1 0 0])

ans =

1

>> A = [1 2 3 4];

>> B = [1 3 4 4];

>> C = [1 2 3 4];

>> isequal (A, B)

ans =

0

>> isequal (A, C)

ans =

1

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