Функции

Функции - это М-файлы, которые могут иметь входные и выходные возвращать. Имя М-файла и функции должно быть одним и тем же. Функции работают с переменными в пределах их собственного рабочего пространства, отделен­ного от рабочего пространства, с которым вы оперируете в командной строке MATLAB.

Хорошим примером является функции rank. М-файл гапк.т находится в директории toolbox/matlab/matfun Вы можете просмотреть его содержание, введя type rank.

 

function r = rank(A,tol)

%RANK Matrix rank.

% RANK(A) provides an estimate of the number of linearly

% independent rows or columns of a matrix A.

% RANK(A,tol) is the number of singular values of A

% that are larger than tol.

% RANK(A) uses the default tol = max(size(A)) * norm(A) * eps.

% Copyright (c) 1984-98 by The MathWorks, Inc. % $Revision: 5.7 $ $Date: 1997/11/21 23:38:49 $s = svd(A); if nargin==1

tol = max(size(A)') * max(s) * eps; end r = sum(s > tol);

 

Первая строка функции М-файла начинается со слова function. Здесь происходит задание имени со списком аргументов. В нашем случае, используется до двух входных аргументов и один выходной.

Следующие несколько строк, до первой пустой или выполняемой строки, являются комментариями, которые предоставляют справочную информацию. Эти строки будут выведены на экран, если вы наберете help rank.

Первая строка справочного текста - это HI строка, которую MATLAB отображает при использовании команды lookfor или при запросе help по всей директории.

Остальное содержание файла составляет исполняемый код MATLAB. Переменная s, представленная в теле функции, также как и переменные в первой строке, г, А и tol, все являются локальными. Они отделены от других переменных в рабочем пространстве MATLAB.

Этот пример показывает важную особенность функций MATLAB, которая обычно не встречается в других языках программирования, - переменное число аргументов. Функция rank может быть использована в нескольких различных формах:

rank(A)

г = rank(A)

r = rank(A, 1.e-6)

Многие функции MATLAB работают таким образом. Если нет выходного аргумента, то результат сохраняется в переменной ans. Если нет второго входного аргумента, то функция вычисляет значение по умолчанию. Внутри тела функции присутствуют две величины nargin и nargout, которые выдают число входных и выходных аргументов при каждом использовании функции. Функция rank использует переменную nargin , но не использует nargout.