7. Создание м-функций.
Файл-функции с одним входным аргументом.
Если в вычислениях часто используется
некоторая функция
,
то имеет смысл один раз написать
файл-функцию, а потом вызывать её, всюду,
где это необходимо. Например, требуется
создать функцию
.
Для этого открываем новый М-файл и набираем текст
------------------------------------------------------------------------------------------------------------------------
function f = myfun(x)
f = exp(-x).*sqrt(( x.^4 + 1)./(x.^4 + 0.1));
-----------------------------------------------------------------------------------------------------------------------
Слово function в первой строке определяет, что данный файл содержит файл-функцию; myfun – имя функции; x – входной аргумент; f – выходной аргумент. Затем идет тело функции, которое состоит, в данном примере, из одной строки. Вообще, тело функции может состоять из нескольких строк, важно, чтобы окончательное значение функции записывалось в f.
В конце ставиться «;» для подавления вывода лишней информации на экран.
Сохраняем файл под именем функции myfun.
Теперь созданную функцию можно использовать так же, как и встроенные функции sin, cos, и другие. Например, наберем в командной строке
>> y = myfun(1.3)
y =
0.3113
При создании функции использовались поэлементные операции, следовательно, её входным аргументом могут быть векторы, например, наберем в командной строке:
>> x = [1.3 7.2];
>> y = myfun(x)
y =
0.3113 0.0007
Файл-функции с несколькими входными аргументами.
Напишем файл-функцию, вычисляющую длину радиус-вектора точки
.
Написание файл-функции с несколькими входными аргументами практически не отличается от случая с одним аргументом. Все входные аргументы размещаются в списке через запятую:
------------------------------------------------------------------------------------------------------------------------
function r = radius3(x, y, z)
r = sqrt( x.^2 + y.^2 + z.^2);
------------------------------------------------------------------------------------------------------------------------
Сохраним эту функцию под именем radius3. Затем, в командной строке наберем:
>> R = radius3(1, 1, 1)
R =
1.732
Файл-функции с несколькими выходными аргументами.
Файл-функции с несколькими выходными аргументами удобны при вычислении вектор-функций. Выходные аргументы добавляются через запятую в список входных аргументов, а сам список заключается в квадратные скобки. Например, вычислим функцию, переводящее время, заданное в секундах, в часы, минуты и секунды.
-----------------------------------------------------------------------------------------------------------------------
function [h, m, s] = hms(sec)
h = floor(sec/3600);
m = floor((sec-h*3600)/60);
s = sec – h*3600 – m*60;
------------------------------------------------------------------------------------------------------------------------
При вызове файл-функции с несколькими выходными аргументами результат следует записать в вектор:
>> [H, M, S] = hms(10000)
H =
2
M =
46
S =
40
Если список входных и выходных аргументов пуст, то заголовок выглядит так
function funname() или function [] = funname().
