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

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

Операторы отношения работают и с массивами, у которых какая-либо размерность равна ну-лю (что приводит к пустому массиву), если оба массива имеют одинаковый размер или же один из них является скаляром. Однако, выражения вида 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 векторными выражениями (см. ниже).