Операторы переключения

Логические операторы и операторы сравнения. Условные операторы. Операторы переключения.

Операторы – это неотъемлемая часть математических выражений, вычисление которых является одной из основных задач MATLAB как системы, созданной для выполнения численных расчетов.

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

Наибольший приоритет при выполнении имеют операторы возведения в степень, а наименьший – операторы сложения и вычитания. Изменить приоритет операций можно, используя в выражении круглые скобки.

Помимо арифметических операторов, в MATLAB существуют операторы отношения и логические операторы. Приоритет этих операторов (кроме оператора логического отрицания) ниже, чем приоритет арифметических операторов.


Арифметические операторы.

К каждом из арифметических операций в MATLAB соответствует определенная функция.

Ниже представлена таблица с операторами и соответствующими им функциями.

Оператор Описание Функция
+ Сложение plus
+ Унарный плюс unplus
- Вычитание minus
- Унарный минус unminus
* Матричное умножение mtimes
.* Поэлементное умножение массивов times
^ Возведение матрицы в степень mpower
.^ Поэлементное возведение массива в степень power
/ Деление матриц слева направо mrdivide
\ Деление матриц справа налево (обратное деление матриц) mldivide
./ Поэлементное деление массивов cлева на право rdivide
.\ Поэлементное деление массивов справа налево ldivide

 

Примеры использования арифметических функций:

Допустим, имеются два массива X и Y одинаковых размеров.

1. Выполним сложение массивов с помощью функции plus:

2. Умножим элементы массива x на соответствующие элементы массива y с помощью функции times.

 

Задание: Опробовать с данными массивами X и Y выполнить:

1. Матричное умножение. (Что бы операция умножения имела смысл, не забудьте транспонировать одну из матриц.).

2. Возвести элементы одного массива в степени, равные соответствующим элементам другого массива.

3. Сделать все элементы массива отрицательными.

4. Выполнить деление элементов массива Х на соответствующие элементы массива Y.


Операторы отношения.

Операторы отношения используются для поэлементного сравнения двух операндов. В качестве которых могут выступать числа, векторы или матрицы. При этом сравниваемые векторы или матрицы должны иметь одинаковые размеры.

 

Ниже представлена таблица с операторами отношения и соответствующими им функциями.

Оператор Название Функция
== Равно eq
~= Не равно ne
< Меньше lt
> Больше gt
<= Меньше или равно le
>= Больше или равной ge

 

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

 

 

Примеры использования операторов отношения:

Ответ: Ответ равен 3, т.к. результат каждой из операций отношения были равны «Истине»(логической 1).

 

Перепишем данное выражение с помощью соответствующих функций.

 

Как было сказано выше, приоритет операторов отношения ниже, чем приоритет арифметических операторов. В данном примере, благодаря круглым скобкам мы добились того, что бы в первую очередь выполнялись операции отношения и лишь затем операция суммирования.

Поэлементное сравнение двух массивов одинаковых размеров с помощью операторов сравнения выведет результат в виде того же размера, состоящего из нулей и единиц.

Если же один из операндов является массивом, а другой скаляром, то MATLAB «расширит» скаляр до размеров данного массива. Другими словами, «расширит» скаляр X до размеров массива У, каждый элемент нового массива будет равен 3, после чего поэлементно сравнит их с элементами массива Y.

 


Логические операторы

Логические операторы предназначены для выполнения поэлементных логических операций над массивами одинаковых размеров.

Ниже представлена таблица с логическими операторами и соответствующими им функциями.

 

Оператор Название Функция
& Логическое И And
| Логическое ИЛИ Or
~ Логическое НЕ Not
  Исключающее ИЛИ Xor

 

Операции И и ИЛИ являются бинарными (выполняются над двумя операндами), а операция НЕ – унарной (однооперандной).

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

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

Примеры использования логических операций:

Приоритет операций

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

1. Круглые скобки ().

2. Транспонирование (.'), транспонирование с комплексным сопряжением ('), возве& дение в степень (^), поэлементное возведение в степень (.^).

3. Унарный плюс (+), унарный минус (–), логическое отрицание (~).

4. Умножение и деление (.*,./,.\, *, /, \).

5. Сложение и вычитание (+ и –).

6. Операции отношения (<=, >, >=, ==, ~=).

7. Логическое И (&).

8. Логическое ИЛИ (|).

Операторы условия.

If…else…elseif…end

Синтаксис:

if «логическое выражение» «инструкция» end   if «логическое выражение» «инструкция» else «инструкция» end   if «логическое выражение» «инструкция» elseif «логическое выражение» «инструкция» else «инструкция» end  

 

Оператор условия if …. End вычисляет некоторое логическое выражение и выполняет соответствующую группу инструкций в зависимости от значения этого выражения.

Если логическое выражение истинно, то MATLAB выполнит все инструкции между if и end и продолжит выполнение программы. Если же логическое выражение ложно, то инструкции будут пропущены и программа продолжит свое выполнение в строке после end.

Операторы if…else…end и if … elseif … end создают дополнительное ветвление в теле оператора if.

· Оператор else не содержит логического условия. Инструкции, связанные с ним, выполняются, если предшествующий оператор if (elseif) ложен.

· Оператор elseif содержит логическое условие, которое вычисляется, если предшествующий оператор if (elseif) ложен. В таком случае инструкции связанные с elseif, выполняются, если логическое условие истинно.

· Оператор elseif может многократно использоваться внутри оператора условия if.

Пример использования:

Операторы переключения

Switch…case…otherwise…end

Синтаксис:

switch «выражение»

% выражение - это обязательно скаляр или строка

case «значение1»

«инструкция»

% выполняются, если «выражение» = «значение1»

case «значение2»

«инструкция»

% выполняются, если «выражение» = «значение2»

Otherwise

«инструкция»

% выполняются, если «выражение» не совпало ни с одним из значений

End

 

Оператор switch... case 1... case k... otherwise... end выполняет ветвления, в зависимости от значений некоторой переменной или выражения.

Оператор переключения включает:

- заголовок switch, за которым следует вычисляемое выражение (скаляр или строка);

- произвольное количество групп case. Заголовок группы состоят из слова case, за которым следует возможное значение выражения, расположенное на одной строке. Последующие строки содержат инструкции, которые выполняются для данного значения выражения. Выполнение продолжается до тех пор, пока не встретится следующий оператор case или оператор otherwise. На этом выполнение блока switch завершается;

- группа otherwise. Заголовок включает только слово otherwise, начиная со следующей строки размещаются инструкции, которые выполняются, если значение выражения оказалось не обработанным ни одной из групп case. Выполнение завершается оператором end;

- оператор end - является последним в блоке переключателя.

Оператор switch работает, сравнивая значение вычисленного выражения со значениями групп case. Для числовых выражений оператор case выполняется, если <значение>==<выражение>. Для строковых выражений оператор case истинен, если strcmp(значение, выражение) истинно.

 

Примеры использования:


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: