Тело функции содержит все коды системы MATLAB, которые осуществляют вычисления и определяют значения выходных переменных. Выражения в теле функции состоят из обраще-ний к другим функциям, программных конструкций типа команд циклов, ввода и вывода, вычислений, операторов присваивания, комментариев и пустых строк. Например, тело функ-
ции averageсодержит нескольких простых программных выражений:
[m,n] = size(x);
if (~((m == 1) | (n == 1)) | (m == 1 & n == 1)) % Flow control
error('Input must be a vector') % Error message display
End
y = sum(x)/length(x); % Computation and assignment
Комментарии
Как было указано ранее, строки комментариев начинаются с символа процента (%). Строки комментариев могут быть в любом месте М-файла, а также вы можете добавить коммента-рии к концу строки кодов программы. Например,
% Add up all the vector elements.
y = sum(x) % Use the sum function.
( % Суммирование всех элементов вектора.
y = sum(x) % Используйте функцию sum)
Первая строка комментариев, следующая непосредственно за строкой определения функции рассматривается как строка H1 данной функции. Строка H1 и любые строки комментариев, непосредственно следующие за Н1, составляют запись оперативной помощи для данного файла. В дополнение к строкам комментариев, вы можете вводить пустые строки в любом месте М-файла. Пустые строки игнорируются. С другой стороны, пустая строка может обозначать конец текста помощи.
Имена функций
Имена функций в MATLAB-е имеют те же ограничения, что и имена переменных. MATLAB использует первые 32 символа имени. Имена функций должны начинаться с буквы; осталь-ные знаки могут быть любой комбинацией букв, цифр и символов подчеркивания. Некото-рые операционные системы могут вводить свои ограничения на длину имен функций.
Название текстового файла, который содержит функцию MATLAB-а, состоит из имени фун-кции с добавленны расширением .m . Например, average.m.Если имя файла и имя функции в ее строке определения отличаются, то внутреннее имя игнорируется.
Однако, несмотря на то что имя функции, заданное в ее строке определения, не обязательно должно совпадать с именем файла, настаятельно рекомендуется чтобы вы использовали одно и то же имя для файла и функции.
Как работает функция
Вы можете вызвать М-функцию как из командной строки MATLAB-а, так и из другого М-файла. Убедитесь, что вы включили все необходимые аргументы, заключив входные аргу-менты в обычные скобки, а выходные – в квадратные.
Определение имени функции
Когда MATLAB сталкивается с новым именем, он осуществляет следующую последователь-ность шагов:
Проверяет, не является ли имя переменной.
Проверяет, не является ли имя подпрограммой (subfunction), то есть функцией MATLAB–а, которая находится в пределах того же М-файла, что и вызываемая функ-ция.
Проверяет, не является ли имя частной функцией(private function), то есть функцией, которая находится в специальной директории под названием Private (private directo-ry) , то есть директории доступной только для М-файлов в пределах той же директо-рии где она сама находится.
Проверяет, находится ли данная на пути доступа MATLAB-а. MATLAB обращается к первому встреченному файлу с заданным именем. Если вы дублируете имена функ-ций, MATLAB обращается к первой встреченной на основe приведенной выше проце-дуры.
Что происходит при вызове функцию
Когда вы вызываете М-файл из командной строки или же из пределов другой М-функции, MATLAB осуществляет синтаксический анализ функции и преобразует ее в псевдокод, ко-торый запоминается в памяти. Это исключает необходимость повторного анализа функции при каждом последующем ее вызове в пределах данного сеанса работы. Псевдокод сохраня-ется в памяти до тех пор пока вы не удалите его с помощью команды clear, или пока вы не выйдете из MATLAB-а.
В приведенной ниже таблице даны основные варианты применения комнды clearдля удалениялюбых функций из рабочего пространства MATLAB-а.