
- •Оглавление
- •Предисловие
- •Раздел 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. Конечно-разностная аппроксимация для граничных узлов
- •Задания
- •Литература
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