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

Операторы отношения и пустые массивы

Операторы отношения работают и с массивами, у которых какая-либо размерность равна ну-лю (что приводит к пустому массиву), если оба массива имеют одинаковый размер или же один из них является скаляром. Однако, выражения вида A == [ ] приводят к ошибке, если только массив А не имеет размеры 0х0 или 1х1. Для проверки явля-ется ли данный массив пустым, следует использовать специальную функцию isempty(A).

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

MatLab обеспечивает следующие логические операторы

Оператор

Описание

&

AND (логическое И)

|

OR (логическое ИЛИ)

~

NOT (логическое НЕ)

Использованием логических операторов с массивами

Логические операторы MatLab-а сравнивают соответствующие элементы массивов одинаковой размерности. Для векторов или прямоугольных массивов, оба операнда должны иметь одинаковый размер, или один из них должен быть скаляром. Если один из элементов является скаляром, а второй – нет, то здесь также имеет место свойство скалярного расширения.

Логические функции

В дополнение к логическим операторам, MatLab имеет ряд логических функций.

Функция

Описание

Примеры

all

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

A = [0 1 2; 3 5 0]

all(A)

ans =

0 1 0

any

Возвращает единицу, если любой из аргументов является истинным или ненулевым; в противном случае возвращает 0. Как и all , any работает вдоль столбцов матриц.

v = [5 0 8];

any(v)

ans =

1

Приоритеты операторов

Выражения могут использовать любую комбинацию арифметических и логических операторов, а также операторов отношения. Уровни приоритетов этих операторов определяют порядок, в котором MatLab обрабатывает выражение. В пределах каждого уровня приоритета, операторы имеют одинаковый приоритет и оцениваются (обрабатываются) слева направо. Последовательность приоритетов для операторов MatLab-а приведены ниже, упорядоченные в порядке убывания приоритетов, то есть от высшего приоритета к низшему:

  1. Обычные скобки ().

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

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

  4. Умножение (.*), правое деление (./), левое деление(.\), матричное умножение (*), матричное правое деление (/), матричное левое деление (\).

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

  6. Оператор двоеточия (:).

  7. Меньше чем (<), меньше чем или равно (<=), больше чем (>), больше чем или равно (>=), равно (==), не равно (~=).

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

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

Команды управления данными (Flow Control)

В MatLab-е имеются 8 базовых команд для управления потоками данных:

if, совместно с else и elseif, осуществляет обработку группы выражений, основываясь на некотором логическом условии.

switch, совместно с case и otherwise, обрабатывает различные группы выражений, основываясь на значении некоторого логического условия.

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

for осуществляет обработку группы выражений определенное (заданное) число раз.

continue передает управление к следующей итерации в циклах for или while , пропуская все оставшиеся выражения в теле цикла.

break прекращает обработку выражений и выходит из циклов, созданных командами for или while.

try...catch изменяет последовательность выполнения команд, если во время выполнения программы получено сообщение об ошибке.

return приводит к прекращению выполнения данной программы и к возврату в вызывающую функцию.

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

Внимание! Во многих случаях вы можете ускорить выполнение программ MatLab-а, путем замены циклов с командами for и while векторными выражениями (см. ниже).