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
- Оглавление
- Предисловие
- Раздел 1. Основные сведения о среде программирования «matlab»
- Глава 1. Вычисления в командном режиме
- 1.1. Простейшие математические операции в matlab
- 1.2. Переменные
- 1.3. Создание матриц
- 1.4. Доступ к элементам матриц
- 1.5. Операции с матрицами
- 1.6. Ввод, вывод и работа со строками
- Глава 2. Построение графиков в matlab
- 2.1. Построение графика в виде двумерной линии
- 2.2. Оформление графиков
- 2.3. Построение трехмерных графиков
- 2.4. Построение линий уровня
- 2.5. Построение векторного поля
- 2.6. Отображение нескольких графиков в одном окне
- Глава 3. Скрипты в matlab и управляющие конструкции
- 3.1. Создание и выполнение скриптов в matlab
- 3.2. Оператор for
- 3.3. Логические операции
- 3.4. Оператор if / elseif / else
- 3.5. Оператор while
- 3.6. Операторы break / continue
- 3.7. Оператор switch
- 3.8. Создание функций
- Раздел 2. Краткие теоретические сведения и задания Тема 1. Векторный анализ
- 1.1. Элементы векторного анализа
- Задания
- Тема 2. Уравнения Максвелла (произвольная и гармоническая временная зависимость, статические, стационарные и квазистационарные поля)
- 2.1. Система уравнений электродинамики – уравнения Максвелла
- 2.2. Граничные условия. Принцип эквивалентности
- Задания
- Тема 3. Плоские волны
- 3.1. Явление дисперсии и групповая скорость
- Задания
- Тема 4. Граничные задачи, уравнения и методы
- 4.1. К классификации электромагнитных явлений
- Задания
- 4.2. Метод конечных разностей
- 4.2.1. Конечно-разностная аппроксимация
- 4.2.2. Конечно-разностная аппроксимация уравнений Лапласа и Пуассона
- 4.2.3. Конечно-разностная аппроксимация для граничных узлов
- Задания
- Литература