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

2.2500 81.0000 1.0000

0.7500 9.0000 0.2000

Изменение приоритетов операторов

4 100 100 1

100 7 6 100

5 100 100 8

100 2 3 100

4 14 15 1

9 7 6 12

5 11 10 8

16 2 3 13

Логические выражения использующие функцию find

Функция find определяет индексы числового массива, удовлетворяющие заданному логичес-кому условию. Эта функция удобна для создания логических масок (шаблонов) и матриц ин-дексов. В наиболее общей форме, функция find возвращает единственный вектор индексов. Этот вектор может быть использован для индексации массивов любого размера или формы. Например, в приведенном ниже примере функция findпозволяет легко заменить все элемен-ты матрицы Абольше 8 на число 100:

A = magic(4)

A =

i = find (A > 8);

A(i) = 100

A =

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

 

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

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

Имеющаяся последовательность приоритетов может быть изменена путем использования обычных скобок, как это показано в следующем примере.

 

A = [3 9 5];

B = [2 1 5];

C = A ./ B.^2

C =

C = (A. / B) .^2

C =

 

Выражения могут также содержать переменные, заданные посредством индексов

 

b = sqrt (A(2)) + 2*B(1)

b =

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

 

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

некотором логическом условии.

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

ваясь на значении некоторого логического условия.

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

на некотором логическом условии.

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

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

все оставшиеся выражения в теле цикла.

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

или while.

• try...catch изменяет последовательность выполнения команд, если во время выполнения

программы получено сообщение об ошибке.

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

щую функцию.

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

 

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