Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
01_Среда_Matlab.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
330.75 Кб
Скачать

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().

16