Файл-функции
Файл-функции выполняют необходимые действия с входными аргументами и возвращают результат в выходных аргументах. Идентификация файла как функции выполняется установкой слова function в первой строке, т.е. заголовке функции:
Структура такого модуля с одним выходным параметром выглядит следующим образом:
function var = f_name(Cпиcoк_napaмeтpов)
%Основной комментарий
%Дополнительный комментарий
Тело файла с любыми выражениями
vаr=выражение
Например,
function f = myfun(x)
f = exp(-x) * sqrt((x^2 + 1) / (x^4 + 0.1));
В заголовке функции также размещаются имя функции и списки входных и выходных аргументов. Входные аргументы записываются в круглых скобках после имени функции (в примере – это x). Выходной аргумент указывается слева от знака равенства в заголовке функции (в примере – это f).
После заголовка размещается тело файл-функции – один или несколько операторов.
Использовать файл-функцию можно так же, как и встроенные функции, например
>> y = myfun(1.3)
y =
0.2600
Каталог, в котором содержатся файл-функции, должен быть текущим, или путь к нему должен быть добавлен в пути поиска.
Использование файл-функций упрощает визуализацию результатов математических действий. Например, требуется определить значение функции myfun на отрезке [0, 4]. Из командной строки это выглядит следующим образом (результат выполнения показан на рис. 3.3):
>> x = 0 : 0.5 : 4;
>> y = myfun(x);
>> plot(x, y)
Рисунок 3.3– Пример использования plot
Но аналогичную задачу можно решить при помощи функции fplot, которой требуется указать имя файл-функции myfun или указать на нее (с оператором @ перед именем функции) и границы отрезка для построения графика:
>> fplot('myfun', [0 4]) или >> fplot(@myfun, [0 4]).
Результат выполнения показан на рис. 3.4.
Рисунок 3.4 – Пример использования fplot
График, построенный fplot, более точно отражает поведение функции, так как алгоритм автоматически подбирает шаг аргумента, уменьшая его на участках быстрого изменения исследуемой функции.
Если функция имеет несколько входных аргументов, то они размещаются в списке через запятую.
Если список выходных аргументов пуст, то файл-функция не будет возвращать никаких значений.
Если функция имеет несколько выходных аргументов (вектор-функция), то они добавляются через запятую в список выходных аргументов. Например, файл-функция для перевода времени, заданного в секундах, в часы, минуты и секунды:
function [hour, minute, second] = hms(sec)
hour = floor(sec/3600);
minute = floor((sec – hour*3600)/60);
second = sec – hour*3600 – minute*60;
При вызове файл-функции с несколькими выходными аргументами результат следует записывать в вектор соответствующий длины:
>> [H, M, S] = hms(10000)
H =
2
M =
46
S =
40
Файл-функции можно сопроводить комментариями. Все комментарии после заголовка и до тела функции или пустой строки выводятся в командное окно по команде help. Например:
function [hour, minute, second] = hms(sec)
% hms – перевод секунд в часы, минуты и секунды
% [hour, minute, second] = hms(sec)
% sec – число секунд
% hour – число полных часов
% minute – число полных минут
% second – остаток секунд
hour = floor(sec/3600);
minute = floor((sec – hour*3600)/60);
second = sec – hour*3600 – minute*60;
Первая строка комментариев после заголовка функции называется H1-line и используется при поиске командой lookfor. Эта команда ищет указанное слово в строках H1-line всех файл-функций в каталогах, указанных в путях поиска, в том числе, и в текущем каталоге.
Для организации диалогового ввода и вывода используются следующие операторы, представленные в табл. 3.1.
Таблица 3.1 – Операторы диалогового ввода/вывода
Достарыңызбен бөлісу: |