Командой type pcr можно вывести полный листинг файла.
Файл-сценарий, именуется Script-файлом, является просто записью серии команд без входных и выходных параметров (процедура без параметров - некие действия).
Особенности файла-сценария:
- нельзя запустить файл без предварительной подготовки, сначала надо задать значения переменных xmin и xmax, используемых в теле файла;
- переменные являются глобальными, т.е. они действуют двояко в командах сессии и внутри программного блока;
- имена файлов-сценариев нельзя использовать в качестве параметров функций, т.к. файлы-сценарии не возвращают значений.
6.2 Структура и свойства файлов функций
Является полноценным модулем, т.к. содержит входные и выходные параметры и использует локальные переменные.
Имеет следующую структуру для функции с одним выходным параметром:
function var=f_name(Список_параметров)
%Основной комментарий
%Дополнительный комментарий
Тело файла с любым выражением
var=<выражение> % вводится, если требуется, чтобы функция возвращала
результат вычислений
Для нескольких выходных параметров:
function [var1,var2,…]=f_name(Список_параметров)
%Основной комментарий
%Дополнительный комментарий
Тело файла с любыми выражениями
var1=<выражение>
var2=<выражение> % Такая функция напоминает процедуру, т.к. возвращает множество результатов по числу выходных параметров.
Свойства файла функции:
- начинается с объявления function, с указанием имени переменной var – выходного параметра, знака = и имени самой функции со списком ее входных параметров;
- функция возвращает свое значение и может использоваться в виде
name(Список_параметров) в математических выражениях;
- все переменные в теле файла являются локальными;
- является самостоятельным программным модулем;
- правила вывода комментариев те же, что у фалов сценариев;
- при обнаружении файла функции, он компилируются, и затем исполняется, а созданные машинные коды хранятся в рабочей области системы MATLAB;
- служит средством расширения системы MATLAB.
Статус переменных в функциях
Переменные, указанные в списке параметров функции, являются локальными и служат для переноса значений, которые подставляются на их место при вызовах функций. Изменение значений переменных в теле функции не влияет на значения, которые те же самые переменные могут иметь за пределами функции.
Локальные переменные могут иметь те же имена, что и глобальные.
Рассмотрим пример задания файла функции crlc(x,y)
function z=crcl(x,y) % x, y –параметры, являются локальными
z=x^2+y^2 % тело функции
Cохраним файл под именем, например, crcl.m.
В командной строке Command Window необходимо задать конкретные значения аргументов x и y, вызвать файл функцию по имени и получить результат расчета.
>> x=0; y=0; %задание входных параметров вне тела функции
>> w=crcl(2,3) % вызов функции при аргументах x=2, y=3
После выхода из тела функции переменные принимают свои исходные значения, равные 0.
Эти переменные меняют свои значения на значения параметров функции только в пределах тела функции.
А переменная z, определенная в теле функции так же будет локальной. Изначально ее значение будет не определено. В теле функции переменная принимает значение z=13. А после возврата из функции, переменная остается не определенной. На что указывается сообщение:
z=
w=
>>x
x=
>>y
y=
>> z
??? undefined function or variable ′z′
Чтобы не выводить функцию z на индикацию, необходимо в M файле после выражения для z поставить точку с запятой.
Function z=crcl(x,y)
z=x^2+y^2;
Для передачи данных из модуля в модуль функции желательно применение глобальных переменных.
Команда global var1 var2… позволяет объявлять переменные модуля-функции глобальными во всех m-файлах, используемых в решении данной задачи.