Matlab в режиме программирования.
До
сих пор мы использовали командное окно Matlab в режиме диалога пользователя с
системой. При этом после набора в текущей строке команды и нажатия клавиши Enter
- система выполняла соответствующие действие и, при необходимости,
выдавала результат этого действия. Однако такой пошаговый режим хорош только
для разового расчета. Даже повторение одной и той же вычислительной схемы с
небольшой модификацией алгоритма или с изменением исходных данных в пошаговом
режиме превращается в обременительное занятие.
Дальнейшее
изучение Matlab,
целесообразно проводить в режиме программирования. Программирование в системе Matlab заключается в написании m-файлов, которые являются исполняемыми
файлами языка Matlab
(M-язык).
Следует
отметить, что m-файлы,
создаваемые пользователем делятся на два класса:
·
Файлы-сценарии
(script - скрипты),
не имеющие входных параметров;
·
Файлы
– функции (function),
имеющие входные параметры;
Синтаксис
операторов Matlab.
Входной язык Matlab насчитывает всего 9 операторов,
использующих 14 служебных слов. Соответствующие синтаксические конструкции
приведены в таблице 4.
Отметим,
что язык Matlab
не содержит оператора goto. В связи с этим в текстах m-файлов отсутствуют метки операторов.
Для идентификации строк, в которых возникли аварийные ситуации, используются
внутренние номера, присваиваемые системой автоматически. Именно этот номер
(порядковый номер строки программы) система указывает при ссылке на строку
программы в которой произошла ошибка.
№
|
Формат оператора
|
Пояснение
|
1
|
var = expr
|
Оператор
присваивания, вычисляет значение выражения expr и заносит результаты вычислений в
переменную var
|
2
|
if
условие 1
операторы 1
[elseif
условие 2
операторы 2
elseif
условие 3
операторы 3
…………………
else
операторы ]
end
|
Условный
оператор. Если справедливо условие 1,
то выполняется группа операторы 1,
если справедливо условие 2, то
выполняется группа операторы 2..
Если
все указанные условия оказываются ложными, то выполняются операторы, расположенные между else и end
|
3
|
switch
expr
case val1
операторы 1
case val2
операторы
2
…………………
[othervise
Операторы ]
end
|
Переключатель
по значению выражения expr.
Если оно совпадает с величиной val1,
то выполняется группа операторы 1, если оно совпадает с
величиной val2,
то выполняется группа операторы 2,…
Если
значение expr не совпадает ни с одной
из перечисленных величин, то выполняются операторы расположенные между othervise
end
|
4
|
for var=t0:[dt:]Tk
операторы
end
|
Цикл
типа арифметической прогрессии, в котором переменная var
при каждом повторении тела цикла изменяется от начального значения t0 с шагом dt
до конечного значения Tk
|
5
|
while
условие
операторы
end
|
Цикл
с предусловием, повторяющейся до тех пор, пока истинно указанное условие.
|
6
|
try
операторы1
catch
операторы2
end
|
Попытка
выполнить группу операторы1. При
условии, что в результате их выполнения возникает исключительная ситуация,
управление передается группе операторы2
(обработка сбойных ситуаций). Если ошибка не возникла, то группа операторы2 не выполняется
|
7
|
break
|
Досрочный
выход из управляющих конструкций типа:
for,
while, switch, try-catch
|
8
|
function f1
function [y1,y2…]=f2(x1,x2,..)
|
Заголовок
функции
(x1,x2,… - входные
параметры;
y1,
y2,
… - выходные параметры)
|
9
|
return
|
Досрочный
выход из тела функции
|
|