- •Операции с рабочей областью и текстом сессии Дефрагментация рабочей области
- •Сохранение рабочей области сессии
- •Ведение дневника
- •Загрузка рабочей области сессии
- •Работа с редактором/отладчиком м-файлов
- •Файлы – сценарии и файлы – функции
- •Панель инструментов редактора/отладчика
- •Работа с точками останова
- •Завершение вычислений и работы с системой
Файлы – сценарии и файлы – функции
Полезно отметить, что М-файлы, используемые в MATLAB, делятся на два класса:
файлы – сценарии, не имеющих входных параметров;
Файлы – функции, имеющие входные параметры.
То что представлено на рисунке файл является файлом – сценарием (Script– файлом). Данный файл не имеет списка входных параметров и является примером простой процедуры без параметров. Он использует глобальные переменные, то есть такие переменные, значения которых могут быть изменены в любой момент сеанса работы и в любом месте программы. Структура этого файла следующая:
%Основной комментарий
%Дополнительный комментарий
Тело файла с любым выражением.
Основным комментарием является первая строка текстовых комментариев, а дополнительным – последующие строки. Основной комментарий выводится при выполнении команд lookforиhelpимя каталога. Полный комментарий выводится при выполнении командыhelpИмя_файла.
Тело файла – сценария может содержать любые математические и логические выражения, а также управляющие структуры, которые присущи MATLABязыку программирования. Он реализуют модульный и объектно-ориентированный подход к подготовке программ и имеет средства для создания элементов интерфейса пользователя.
М-файл функции является типичным объектом – модулем языка программирования системы MATLAB. Структура такого модуля с одним выходным параметром выглядит следующим образом:
function var=f_name(Список_параметров)
%Основной комментарий
%Дополнительный комментарий
Тело файла с любыми выражениями
var=выражение
М-файл – функция имеет следующие свойства:
он начинается с объявления function, после которого указывается имя переменнойvar– выходного параметра, имя самой функции и список ее входных параметров;
функция возвращает свое значение и может использоваться в виде name(Список_параметров)в математических выражениях;
все переменные, имеющиеся в теле файла-функции, являются локальными, то есть действуют только в пределах тела функции;
файл – функция является самостоятельным программным модулем, который общается с другими модулями через свои входные и выходные параметры;
правила вывода комментариев те же, что у файлов – сценариев;
файл – функция служит средством расширения системы MATLAB;
При обнаружения файла – функции он компилируется и затем исполняется, а созданные машинные коды хранятся в рабочей области системы MATLAB.
Последняя конструкция var=выражениевводится, если требуется, чтобы функция возвращала результат вычислений. Если выходных параметров больше, то они указываются в квадратных скобках после словаfunction. При этом структура модуля имеет следующий вид
function [var1,var2,…]=f_name(Список_Параметров)
%Основной комментарий
Тело файла с любыми выражениями
var1=выражение
var2=выражение
…
Переменные в файлах-функциях – по умолчанию локальные. Это значит, что они, меняя свое значение внутри модуля файла – функции, не сохраняют его при выходе из файла – функции. Нередко применение глобальных переменных в программных модулях может приводить к побочным эффектам. Применение локальных переменных устраняет эту возможность и отвечает требованиям структурного программирования.
Однако передача данных из модуля в модуль в этом случае происходит только через входные и выходные параметры, что требует тщательного планирования такой передачи. Команда globalvar1var2 … позволяет объявить переменные модуля – функции глобальными. Таким образом, внутри функции могут использоваться и глобальные переменные, если это нужно по условиям решения вашей задачи.
Итак, фал-функция отличается от файла-сценария прежде всего тем, что созданная им функция имеет входные параметры, список которых указывается в круглых скобках. Вот пример задания простой функции, вычисляющей сумму квадратов х,у:
function z=fun(x,y)
z=x^2+y^2;
return
Имя этой функции zод таким именем ее надо записать в виде М-файла. (х,у) – список параметров (х и у). Оператор return задает возврат функцией значения в ответ на обращение к ней по имени с указанием фактических параметров. Например задавz(2,3), получим 13.
В MATLABможно включать подфункции. Они объявляются и записываются в теле основных функций и имеют идентичную им конструкцию, например:
function [mean,stdev]=statv(x)
%STAV Interesting statistics.
%Пример функции с встроенной подфункций
n=length(x);
mean=avg(x,n);
stdev=sqrt(sum((x-avg(x,n)).^2)/n);
%__________________________
function m=avg(x,n)
%Mean subfunction
m=sum(x)/n
В этом примере среднее значение элементов вектора х вычисляется с помощью подфункции avg(x,n), тело которой записано в теле основной функцииstatv.
Пример использования функции statv:
>>V=[1 2 3 4 5 6]
V=
1 2 3 4 5
>>[a,m]=statv(V)
a=
3
m=
1.4142
>>statv(V)
ans=
3
Подфункции определены и действуют локально, то есть только в пределах M-файла, определяющего основную функцию. Командаhelpnameвыводит комментарий, относящийся только к основной функции, тогда как командаtypenameвыводит весь листинг М-файла.