Листинг 5.4. Файл-функция с несколькими аргументами
function = radius3(х, у, z)
r=sqrt (x.^2 + у.:^2 + z.^2) ;
Для вычисления длины радиус-вектора теперь можно использовать .функцию radius3, например:
» R = radius3(l, 1, 1)
R=
1.732
Кроме функций с несколькими аргументами, MatLab позволяет создавать функции, возвращающие несколько значений, т. е. имеющие несколько выходных аргументов.
Файл-функции с несколькими выходными аргументами
Файл-функции с несколькими выходными аргументами удобны при вычислении функций, возвращающих несколько значений (в математике они называются вектор-функции). Выходные аргументы добавляются через запятую и список выходных аргументов, а сам список заключается в квадратные скоби. Хорошим примером является функция, переводящая время, заданное в секундах, в часы, минуты и секунды. Данная файл-функция приведена в листинге 3.5
function [hour, minute, second] = hms(sec)
hour = floor(sec/3600);
minute = floor((sec-hour*3600)/60);
second = sec-hour*3600-minute*60;
При вызове файл-функций с несколькими выходными аргументами результат следует записывать в вектор соответствующей длины:
» [Н, М, S] = hms (10000)
H=
M=
S=
Если список выходных аргументов пуст, т. е. заголовок выглядит так:
function myfun(a,b) или function [ ]=myfun (a, b), то файл или –функция не будет возвращать никаких значений. Такие функции тоже иногда оказываются полезными.
Предусмотрена также возможность создавать файл-функции, которые приспосабливаются к числу входных и выходных аргументов. Большинство встроенных функций работают именно таким образом.