Язык программирования системы MATLAB имеет следующие средства для построения команд и написания М-файлов:
-
данные различного типа: double, numeric, char, cell, array;
-
константы и переменные: 25, pi, eps, ‘Hello’, ans, m, n;
-
операторы, включая операторы математических выражений: +,-,*;
-
встроенные команды и функции: help, clear, plot, sin, cos;
-
функции пользователя: func, map, draw, paint, neuron;
-
управляющие структуры: if, for, while, switch, try, catch, end;
-
системные операторы и функции: realmin, realmax, Inf, Nan;
-
средства расширения языка: пакет NNT, пакет Simulink.
M-файлы сценариев и функций
M-файлы системы MATLAB делятся на два класса:
-
файлы-сценарии, не имеющие входных параметров;
-
файлы-функции, имеющие входные параметры.
Файл-сценарий или Script-файл не имеет списка входных параметров. Он использует глобальные переменные, т. е. такие переменные, значения которых могут быть изменены в любой момент сеанса работы и в любом месте программы. Для запуска файла-сценария из командной строки MATLAB достаточно указать его имя в этой строке.
Файл-сценарий имеет следующую структуру:
%Основной комментарий – одна строка (обязателен)
%Дополнительный комментарий – любое число строк (не обязателен)
Тело файла с любыми выражениями, командами и управляющими структурами.
Основной комментарий выводится при выполнении команд
lookfor и help имя_каталога. Полный комментарий выводится при выполнении команды help имя_файла, причём вывод производится до первой пустой строки.
Файл-функция отличается от файла-сценария прежде всего тем, что созданная им функция имеет входные параметры, список которых указывается в круглых скобках. Используемые в файлах-функциях переменные и имена параметров являются локальными переменными, изменение значений которых в теле функции не влияет на значения, которые те же самые переменные могут иметь за пределами функции.
Файл-функция имеет следующую структуру:
function var=f_name (Список_параметров_передаваемых_ значений)
%Основной комментарий – одна строка (обязателен)
%Дополнительный комментарий – любое число строк (необязателен)
Тело файла с любыми выражениями, командами и управляющими структурами.
var=выражение
Последняя инструкция “var=выражение” вводится, если требуется, чтобы функция возвращала результат вычислений. Если необходимо большее количество выходных параметров, структура модуля будет иметь следующий вид:
Function[var1,var2,...]=f_name(Список_параметров_передаваемых_значений)
%Основной комментарий – одна строка (обязателен)
%Дополнительный комментарий – любое число строк (необязателен)
Тело файла с любыми выражениями, командами и управляющими структурами.
var1=выражение
var2=выражение
...
Имена var, var1, var2, ... для возвращаемых значений являются глобальными или известными в теле вызывающей М-функции.
Управляющие структуры
Помимо программ с линейной структурой, инструкции которых исполняются строго по порядку, MATLAB позволяет создавать программы, структура которых нелинейна. Для создания таких программ применяются следующие управляющие структуры:
1. Диалоговый ввод: input (строка);
2. Условный оператор: if ... elsif ... else... end;
3. Циклы типа for...end: for Заголовок_цикла Тело_цикла end;
4. Циклы типа while...end: while Условие_цикла Тело_цикла end;
5. Конструкция переключателя: switch Exp case B1 case b2 … otherwise end;
6. Конструкция try...catch...end: try Тело_try catch Тело_catch end;
7. Создание паузы в вычислениях: pause, pause (...), pause on, pause off.
Для организации диалогового вывода используются функции
input и disp.
Функция input имеет следующий синтаксис:
переменная = input(строка)
При выполнении этой команды вначале выводится строка, затем происходит остановка работы программы и ожидается ввод значения. Ввод подтверждается нажатием клавиши Enter, после чего введенное значение присваивается переменной.
Функция disp предназначена для вывода ее параметра на экран:
disp (Выводимое значение)
Условный оператор if в общем виде записывается следующим образом:
if Условие
Список_инструкций_If
elseif Условие
Список_инструкций_Elsif
else
Список_инструкций_Else
end
Циклы типа for...end обычно используются для организации вычислений с заданным числом повторяющихся циклов. Конструкция такого цикла имеет следующий вид:
for var=Выражение, Список_инструкций end
Выражение чаще всего записывается в виде s:d:e, где s – начальное значение переменной цикла var, d – приращение этой переменной и e – конечное значение управляющей переменной, при достижении которого цикл завершается. По умолчанию d равно 1.
Цикл типа while...end выполняется до тех пор, пока остается истинным условие:
while Условие
Список_инструкций
end
Досрочное завершение циклов реализуется с помощью операторов break или continue.
Для осуществления множественного выбора (или ветвления) используется конструкция с переключателем типа switch:
switch switch_Выражение
case case_Выражение
Список_инструкций
case {case_Выражение1,case_Выражение2,case_Выражение3,...}
Список_инструкций
...
otherwise,
Список_инструкций
end
Case_выражение может быть числом, константой, переменной, вектором ячеек или даже строчной переменной. В последнем случае оператор case истинен, если функция strcmp(значение, выражение) возвращает логическое значение “истина”.
Конструкция блока вывода ошибок try...catch...end имеет следующий синтаксис:
try
Список_инструкций
catch
Список_инструкций
end
|