Часто при программировании приходится много раз повторять одни и те же вычисления, например, определение модуля числа или расчет евклидового расстояния между точками и т.п. Для реализации таких повторяющихся вычислений целесообразно создавать функции и вызывать их по мере необходимости.

4.1. Порядок определения и вызова функций

В первой главе данного пособия был показан порядок определения собственных функций в программе MatLab. В данном параграфе остановимся на более подробном описании программирования пользовательских функций.

Синтаксис для определения собственных функций в MatLab имеет следующий вид:

function [ RetVal1, RetVal2,… ] = FunctionName(arg1, arg2,…)
<тело функции>

где RetVal1, RetVal2,... – набор возвращаемых значений функцией (результаты работы); arg1, arg2,... – набор входных аргументов; тело функции – набор операторов (программа), которые выполняются при вызове функции.

Рассмотрим пример реализации функции для вычисления евклидового расстояния:

function length = euqlid(x1, y1, x2, y2)
length = sqrt((x1-x2)^2+(y1-y2)^2);

Продемонстрируем возможность возвращения нескольких параметров на примере вычисления ширины и высоты прямоугольника, заданного координатами левого верхнего угла (x1,y1) и правого нижнего (x2,y2):

function = RectangleHW(x1,y1,x2,y2)
width = abs(x1-x2);
height = abs(y1-y2);

Данную функцию можно записать еще и с таким набором параметров:


width = abs(P1(1)-P1(2));
height = abs(P2(1)-P2(2));

где P1 и P2 – векторы (массивы) размером в 2 элемента и описывают точку в двумерном пространстве. В этом случае при вызове функции, значения координат точек можно передавать таким образом:

RectangleHW(, );

Если же программист сделает ошибку и при вызове функции передаст неверный размер вектора, например, так

RectangleHW(0, );

то выполнение функции завершится с ошибкой и выполнение всего алгоритма остановится. Чтобы избежать этой ситуации MatLab позволяет проводить проверку корректности переданных аргументов и корректно завершать работу функции без остановки работы всего алгоритма. Следующий пример записи функции демонстрирует работу такой проверки:

function = RectangleHW(P1, P2)
if length(P1) < 2 | length(P2) < 2
end

width = abs(P1(1)-P1(2));
height = abs(P2(1)-P2(2));

При выполнении данной функции с неверными параметрами, функция выдаст сообщение об ошибке в командное окно MatLab, но программа продолжит свою работу.

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

Для проверки числа переданных аргументов и числа ожидающих возвращаемых значений используются переменные nargin и nargout. Ниже приведен пример функции, использующей проверку корректности числа входных и выходных аргументов.

function = RectangleHW(P1, P2)
if nargin ~= 2
error("Bad number of parameters");
end
if nargout ~= 2
error("Must be 2 return values");
end
if length(P1) < 2 | length(P2) < 2
error("Bad 1st or 2nd parameter");
end

width = abs(P1(1)-P1(2));
height = abs(P2(1)-P2(2));

При этом проверки корректности параметров функции будут срабатывать в следующих ситуациях:

RectangleHW(); % Bad number of parameters
= RectangleHW(, ); % Must be 2 return
% values
= RectangleHW(0, ); % Bad 1st or 2nd parameter

M-файлы являются обычными текстовыми файлами, которые создаются с помощью текстового редактора. Для операционной среды персонального компьютера система MATLAB поддерживает специальный встроенный редактор/отладчик, хотя можно использовать и любой другой текстовый редактор с ASCII-кодами.

Открыть редактор можно двумя способами:

  • из меню File выбрать опцию New, а затем M-File.
  • использовать команду редактирования edit.

Пример

Команда edit poof запускает редактор и открывает файле poof.m. Если имя файла опущено, то запускается редактор и открывается файл без имени.
Теперь можно записать, например, функцию fact, приведенную выше, вводя строки текста и сохраняя их в файле с именем fact.m в текущем каталоге.
Как только такой файл создан, можно выполнить следующие команды:

  • Вывести на экран имена файлов текущего каталога:
    what
  • Вывести на экран текст M-файла fact.m:
    type fact
  • Вызвать функцию fact с заданными параметрами:
    fact (5)
    ans= 120

М-сценарии

Сценарии являются самым простым типом M-файла – у них нет входных и выходных аргументов. Они используются для автоматизации многократно выполняемых вычислений. Сценарии оперируют данными из рабочей области и могут генерировать новые данные для последующей обработки в этом же файле. Данные, которые используются в сценарии, сохраняются в рабочей области после завершения сценария и могут быть использованы для дальнейших вычислений.

Пример
Следующие операторы вычисляют радиус-вектор rho для различных тригонометрических функций от угла theta и строят последовательность графиков в полярных координатах.

Создайте М-файл petals.m, вводя указанные выше операторы. Этот файл является сценарием. Ввод команды petals.m в командной строке системы MATLAB вызывает выполнение операторов этого сценария.

После того, как сценарий отобразит первый график, нажмите клавишу Return, чтобы перейти к следующему графику. В сценарии отсутствуют входные и выходные аргументы; программа petals.m сама создаёт переменные, которые сохраняются в рабочей области системы MATLAB. Когда выполнение завершено, переменные (i, theta и rho) остаются в рабочей области. Для того чтобы увидеть этот список, следует воспользоваться командой whos.

М-функции

М-функции являются M-файлами, которые допускают наличие входных и выходных аргументов. Они работают с переменными в пределах собственной рабочей области, отличной от рабочей области системы MATLAB.

Пример

Функция average - это достаточно простой M-файл, который вычисляет среднее значение элементов вектора:
function y = average (x)
% AVERAGE Среднее значение элементов вектора.
% AVERAGE(X), где X - вектор. Вычисляет среднее значение элементов вектора.
% Если входной аргумент не является вектором, генерируется ошибка.
= size(x);
if (~((m == 1) | (n == 1)) | (m == 1 & n == 1))
error("Входной массив должен быть вектором’)
end
y =sum(x)/length(x); % Собственно вычисление

Попробуйте ввести эти команды в M-файл, именуемый average.m. Функция average допускает единственный входной и единственный выходной аргументы. Для того чтобы вызвать функцию average, надо ввести следующие операторы:

z = 1:99;
average(z)
ans = 50

Структура М-функции. M-функция состоит из:

  • строки определения функции;
  • первой строки комментария;
  • собственно комментария;
  • тела функции;
  • строчных комментариев;

Строка определения функции. Строка определения функции сообщает системе MATLAB, что файл является М-функцией, а также определяет список входных аргументов.

Пример
Строка определения функции average имеет вид:
function y = average(x)
Здесь:

  1. function - ключевое слово, определяющее М-функцию;
  2. y - выходной аргумент;
  3. average - имя функции;
  4. x - входной аргумент.

Каждая функция в системе MATLAB содержит строку определения функции, подобную приведенной.

Если функция имеет более одного выходного аргумента, список выходных аргументов помещается в квадратные скобки. Входные аргументы, если они присутствуют, помещаются в круглые скобки. Для отделения аргументов во входном и выходном списках применяются запятые.

Пример

function = sphere(theta, phi, rho)

Имена входных переменных могут, но не обязаны совпадать с именами, указанными в строке определения функции.

Первая строка комментария . Для функции average первая строка комментария выглядит так:

% AVERAGE Среднее значение элементов вектора

Это - первая строка текста, которая появляется, когда пользователь набирает команду help <имя_функции>. Кроме того, первая строка комментария выводится на экран по команде поиска lookfor. Поскольку эта строка содержит важную информацию об M-файле, она должна быть тщательно составлена.

Комментарий . Для M-файлов можно создать online-подсказку, вводя текст в одной или более строках комментария.

Пример

Сформируем несколько строк комментария

% Функция average(x) вычисляет среднее значение элементов вектора x.
% Если входной аргумент не является вектором, выдается ошибка.

Тогда при вводе команды подсказки help <имя_функции>, система MATLAB отображает строки комментария, которые размещаются между строкой определения функции и первой пустой строкой, либо началом программы. Команда help <имя_функции> игнорирует комментарии, размещенные вне этой области.

Пример

help sin
SIN Sine.
SIN(X) is the sine of the elements of X
SIN(X) вычисляет функцию синуса элементов массива X.

MATLAB выводит на экран строки файла Contents.m по команде help <имя_каталога>.

Если каталог не содержит файла Contents.m, то по команде help <имя_каталога> распечатывается первая строка комментария для каждого M-файла данного каталога.

Тело функции . Тело функции содержит код языка MATLAB, который выполняет вычисления и присваивает значения выходным аргументам. Операторы в теле функции могут состоять из вызовов функций, программных конструкций для управления потоком команд, интерактивного ввода/вывода, вычислений, присваиваний, комментариев и пустых строк.

Пример

Тело функции average включает ряд простейших операторов программирования:

Как уже говорилось ранее, комментарии отмечаются знаком (%). Строка комментария может быть размещена в любом месте M-файла, в том числе и в конце строки.

Пример

% Найти сумму всех элементов вектора x
y = sum(x) % Использована функция sum
.

Кроме строк комментариев в текст М-файла можно включать пустые строки. Однако надо помнить, что пустая строка может служить указателем окончания подсказки.

Имена М-функций . В системе MATLAB на имена М-функций налагаются те же ограничения, что и на имена переменных - их длина не должна превышать 31 символа. Более точно, имя может быть и длиннее, но система MATLAB принимает во внимание только первые 31 символ. Имена М-функций должны начинаться с буквы; остальные символы могут быть любой комбинацией букв, цифр и подчеркиваний.

Имя файла, содержащего М-функцию, составляется из имени функции и расширения “.m”.

Пример

average.m
Если имя файла и имя функции в строке определения функции разные, то используется имя файла, а внутреннее имя игнорируется. Хотя имя функции, определенное в строке определения функции, может и не совпадать с именем файла, настоятельно рекомендуется использовать одинаковые имена.

Двойственность функций и команд . Команды системы MATLAB - это операторы вида:
load
help

Многие команды могут быть модифицированы добавлением операндов:
load August17.dat
help magic
type rank

Альтернативный метод задания модификаторов - определить их в качестве строковых аргументов функции:

load("August17.dat")
help("magic")
type("rank")

В этом заключается двойственность понятий команды и функции в системе MATLAB. Любая команда вида

command argument

может быть записана в форме функции

command("argument").

Преимущество функционального описания проявляется, когда строка аргументов формируется по частям. Следующий пример показывает, как может быть обработана последовательность файлов August1.dat, August2.dat, и т.д. Здесь используется функция int2str, которая переводит целое число в строку символов, что помогает сформировать последовательность имён файлов.

for d = 1:31
s = ["August" int2str(d) ".dat"]
load(s) %Загрузить файл с именем August"d".dat
% Операторы обработки файла
end

Те, кто имеет дело с высшей математикой, прекрасно знают, с какими математическими «чудовищами» иногда приходится сталкиваться. Например, на вычисление какого-нибудь гигантского тройного интеграла можно потратить настоящую уйму времени, душевных сил и не восстанавливающихся нервных клеток. Конечно, это очень интересно, бросить вызов интегралу, и взять его. Но, что делать, если вместо этого интеграл грозиться взять Вас? Или, что еще хуже, кубический трехчлен вышел из-под контроля и разбушевался? Такого и врагу не пожелаешь.


Раньше вариантов было всего два: плюнуть на все и пойти гулять или вступить в многочасовую схватку с интегралом. Ну, кому многочасовую, кому многоминутную – кто как учился. Но суть не в этом. Двадцатый век и неумолимо движущийся прогресс предлагают нам третий способ, а именно позволяют взять самый сложный интеграл «по-быстрому». То же самое касается решения всевозможных уравнений, построения графиков функций в виде кубических гиперболоидов и т.д.

Для таких неординарных, но периодически случающихся среди студентов ситуаций существует мощное математическое оружие. Встречайте, кто еще не знает – пакет программ MATLAB.

Матлаб и решит уравнение, и аппроксимирует, и построит график функции. Понимаете, что это значит, друзья?

Это значит, что – один из мощнейших на сегодняшний день пакетов обработки данных. Название расшифровывается как Matrix Laboratory. Матричная Лаборатория, если по-русски. Возможности программы покрывают практически все области математики. Так, пользуясь матлабом, Вы сможете:

  • Производить всевозможные операции над матрицами, решать линейные уравнения, работать с векторами;
  • Вычислять корни многочленов любой степени, производить операции над многочленами, дифференцировать, экстраполировать и интерполировать кривые, строить графики любых функций;
  • Проводить статистический анализ данных с использованием цифровой фильтрации, статистической регрессии;
  • Решать дифференциальные уравнения. В частных производных, линейных, нелинейных, с граничными условиями – не важно, матлаб все решит;
  • Выполнять операции целочисленной арифметики.

Помимо всего этого возможности MATLAB позволяют визуализировать данные вплоть до построения трехмерных графиков и создания анимированных роликов.

Наше описание матлаб, конечно, далеко не полное. Помимо предусмотренных производителем возможностей и функций существует огромное количество инструментов матлаб, написанных просто энтузиастами или другими компаниями.

MATLAB как язык программирования


А еще – это язык программирования, используемый непосредственно при работе с программой. Не будем вдаваться в подробности, скажем только, что программы, написанные на языке MATLAB, бывают двух видов: функции и скрипты.


Основной рабочий файл программы – М-файл. Это бесконечный текстовый файл, и именно в нем происходит непосредственно программирование вычислений. Кстати, пусть Вас не пугает это слово – для того, чтобы работать в MATLAB, вовсе не нужно быть профессиональным программистом.

М-файлы делятся на

  • М-сценарии. М-сценарий – самый простой тип M-файла, у которого отсутствуют входные и выходные аргументы. Данный файл используется для автоматизации многократно повторяемых вычислений.
  • M-функции. М-функции – это М-файлы, допускающие наличие входных и выходных аргументов.

Для того чтобы наглядно показать, как происходит работа в MATLAB, приведем ниже пример создания функции в матлабе. Данная функция будет вычислять среднее значение вектора.
f unction y = average (x)
% AVERAGE Среднее значение элементов вектора.
% AVERAGE(X), где X - вектор. Вычисляет среднее значение элементов вектора.
% Если входной аргумент не является вектором, генерируется ошибка.
= size(x);
if (~((m == 1) | (n == 1)) | (m == 1 & n == 1))
error("Входной массив должен быть вектором’)
end
y =sum(x)/length(x); % Собственно вычисление

Строка определения функции сообщает системе MATLAB, что файл является М-функцией, а также определяет список входных аргументов. Так, строка определения функции average имеет вид:
function y = average(x)
Где:

  1. function - ключевое слово, определяющее М-функцию;
  2. y - выходной аргумент;
  3. average - имя функции;
  4. x - входной аргумент.

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

Безусловно, такой мощный пакет нужен не только для того, чтобы облегчить жизнь студентам. В настоящее время MATLAB, с одной стороны, очень популярен среди специалистов многих научных и инженерных отраслей. С другой стороны, возможность работы с большими матрицами делает MATLAB незаменимым инструментом финансовых аналитиков, позволяющим решить намного больше задач, чем, к примеру, известный всем Excel. Подробнее о том, вы можете прочитать в обзорной статье.

Недостатки работы с MATLAB


Какие есть трудности в работе с MATLAB? Трудность, пожалуй, всего одна. Но фундаментальная. Чтобы полностью раскрыть возможности MATLAB и с легкостью решать встающие перед Вами задачи, придется попотеть и сначала разобраться с самим матлабом (как создать файл, как создать функцию и др.). А это не так просто, ибо мощность и широкие возможности требуют жертв.

При всем желании нельзя сказать, что MATLAB – простая программа. Тем не менее, надеемся, все вышеперечисленное будет достаточным аргументом для того, чтобы взяться за ее освоение.

И напоследок. Если Вы не знаете, почему все в Вашей жизни пошло так, а не иначе, спросите об этом у матлаба. Просто наберите в командной строке “why” (почему). Он ответит. Попробуйте!

Теперь вы знаете возможности Матлаб. В области образования MATLAB часто используется в преподавании численных методов и линейной алгебры. Многим студентам не обойтись без него при обработке результатов эксперимента, проведенного в ходе лабораторной работы. Для быстрого и качественного освоения основ работы с MATLAB Вы всегда можете обратиться к , в любой момент готовым ответить на любой Ваш вопрос.

В программе MATLAB вы будете использовать как встроенные функции, так и
Matlab функции, созданные вами.

Встроенные функции

Программа MATLAB имеет много встроенных функций. В их число входят
функции sqrt, cos, sin, tan, log, exp и atan (для функции арктангенс), а также
более специализированные математические функции, такие как gamma, erf и besselj. Программа MATLAB имеет также некоторые встроенные константы,
включая pi (число п), i (комплексное число i = корень(-1)) и Inf (°° - бесконечность). Ниже показано несколько примеров:

Функция log является натуральным логарифмом и во многих текстах называется In.

ans =
0.8660

Функции, задаваемые пользователем

В этом разделе мы проверим два способа задания ваших собственных функций в
программе MATLAB. Первый способ использует команду inline, а второй
использует оператор @, чтобы создать так называемую «анонимную функцию».
Второй метод является новым в программе MATLAB 7, и в настоящее время этому
методу отдается предпочтение. Периодически мы будем упоминать о команде
inline ради пользователей более ранних версий программы. Однако мы
настоятельно рекомендуем пользователям MATLAB 7 и пользователям более ранних
версий, когда они обновят программу, использовать оператор @ в качестве
обычного метода для задания функций. Функции можно также задавать в
отдельных файлах, которые называются М-файлами (см. главу 3).
В этом примере показано, как задается функция f (x) = х 2 с использованием
этих команд.

f =
@ (х) х^2

Можно сделать и по-другому:

f1 = inline ("х^2","х")

f1 =
Inline function:
f1(x) = х^2

Когда функция задана, не важно каким методом, вы можете ее вычислить, например:

Как мы отмечали ранее, большинство функций программы MATLAB могут
оперировать как векторами, так и скалярами. Чтобы быть уверенным, что заданная
вами функция может оперировать с векторами, вставляйте точки перед
математическими операторами.* ./ и.^ Таким образом, чтобы получить векторизованную версию функции f (x) = х 2 , введите строку

или строку

f1 = inline ("x.^2","x")

Теперь мы можем вычислить любую функцию для вектора, например:

ans =
1 4 9 16 25

Используя графические возможности программы MATLAB, вы можете начертить
графики функций f и f1. Это можно сделать несколькими способами, которые
мы рассмотрим в разделе «Графика» далее в этом уроке. В завершении этого
раздела отметим, что функции можно также задавать с двумя или более
переменными. Например, решение любой из этих функций

g = @(x, y) x^2 + y^2; g (1, 2);
g1 = inline ("x^2 + y^2", "x", "y"); g1 (1, 2)

даст ответ 5. Если вместо этого вы зададите функцию следующим образом

g = @(x, y) x.^2 + y.^2;

тогда вы сможете вычислить векторы; таким образом, выполнение следующего
выражения

g (, )

дает значения функции в точках (1, 3) и (2, 4).

Поэтому из выше всего сказанного можно сделать вывод, что вам необходимо просмотреть много дополнительной информации и альтернатив!

M-файлы являются обычными текстовыми файлами, которые создаются с помощью текстового редактора. Для операционной среды персонального компьютера система MATLAB поддерживает специальный встроенный редактор/отладчик, хотя можно использовать и любой другой текстовый редактор с ASCII-кодами.

Открыть редактор можно двумя способами:

  • из меню File выбрать опцию New, а затем M-File.
  • использовать команду редактирования edit.

Пример

Команда edit poof запускает редактор и открывает файле poof.m. Если имя файла опущено, то запускается редактор и открывается файл без имени.
Теперь можно записать, например, функцию fact, приведенную выше, вводя строки текста и сохраняя их в файле с именем fact.m в текущем каталоге.
Как только такой файл создан, можно выполнить следующие команды:

  • Вывести на экран имена файлов текущего каталога:
    what
  • Вывести на экран текст M-файла fact.m:
    type fact
  • Вызвать функцию fact с заданными параметрами:
    fact (5)
    ans= 120

М-сценарии

Сценарии являются самым простым типом M-файла – у них нет входных и выходных аргументов. Они используются для автоматизации многократно выполняемых вычислений. Сценарии оперируют данными из рабочей области и могут генерировать новые данные для последующей обработки в этом же файле. Данные, которые используются в сценарии, сохраняются в рабочей области после завершения сценария и могут быть использованы для дальнейших вычислений.

Пример
Следующие операторы вычисляют радиус-вектор rho для различных тригонометрических функций от угла theta и строят последовательность графиков в полярных координатах.

Создайте М-файл petals.m, вводя указанные выше операторы. Этот файл является сценарием. Ввод команды petals.m в командной строке системы MATLAB вызывает выполнение операторов этого сценария.

После того, как сценарий отобразит первый график, нажмите клавишу Return, чтобы перейти к следующему графику. В сценарии отсутствуют входные и выходные аргументы; программа petals.m сама создаёт переменные, которые сохраняются в рабочей области системы MATLAB. Когда выполнение завершено, переменные (i, theta и rho) остаются в рабочей области. Для того чтобы увидеть этот список, следует воспользоваться командой whos.

М-функции

М-функции являются M-файлами, которые допускают наличие входных и выходных аргументов. Они работают с переменными в пределах собственной рабочей области, отличной от рабочей области системы MATLAB.

Пример

Функция average - это достаточно простой M-файл, который вычисляет среднее значение элементов вектора:
function y = average (x)
% AVERAGE Среднее значение элементов вектора.
% AVERAGE(X), где X - вектор. Вычисляет среднее значение элементов вектора.
% Если входной аргумент не является вектором, генерируется ошибка.
= size(x);
if (~((m == 1) | (n == 1)) | (m == 1 & n == 1))
error("Входной массив должен быть вектором’)
end
y =sum(x)/length(x); % Собственно вычисление

Попробуйте ввести эти команды в M-файл, именуемый average.m. Функция average допускает единственный входной и единственный выходной аргументы. Для того чтобы вызвать функцию average, надо ввести следующие операторы:

z = 1:99;
average(z)
ans = 50

Структура М-функции. M-функция состоит из:

  • строки определения функции;
  • первой строки комментария;
  • собственно комментария;
  • тела функции;
  • строчных комментариев;

Строка определения функции. Строка определения функции сообщает системе MATLAB, что файл является М-функцией, а также определяет список входных аргументов.

Пример
Строка определения функции average имеет вид:
function y = average(x)
Здесь:

  1. function - ключевое слово, определяющее М-функцию;
  2. y - выходной аргумент;
  3. average - имя функции;
  4. x - входной аргумент.

Каждая функция в системе MATLAB содержит строку определения функции, подобную приведенной.

Если функция имеет более одного выходного аргумента, список выходных аргументов помещается в квадратные скобки. Входные аргументы, если они присутствуют, помещаются в круглые скобки. Для отделения аргументов во входном и выходном списках применяются запятые.

Пример

function = sphere(theta, phi, rho)

Имена входных переменных могут, но не обязаны совпадать с именами, указанными в строке определения функции.

Первая строка комментария . Для функции average первая строка комментария выглядит так:

% AVERAGE Среднее значение элементов вектора

Это - первая строка текста, которая появляется, когда пользователь набирает команду help <имя_функции>. Кроме того, первая строка комментария выводится на экран по команде поиска lookfor. Поскольку эта строка содержит важную информацию об M-файле, она должна быть тщательно составлена.

Комментарий . Для M-файлов можно создать online-подсказку, вводя текст в одной или более строках комментария.

Пример

Сформируем несколько строк комментария

% Функция average(x) вычисляет среднее значение элементов вектора x.
% Если входной аргумент не является вектором, выдается ошибка.

Тогда при вводе команды подсказки help <имя_функции>, система MATLAB отображает строки комментария, которые размещаются между строкой определения функции и первой пустой строкой, либо началом программы. Команда help <имя_функции> игнорирует комментарии, размещенные вне этой области.

Пример

help sin
SIN Sine.
SIN(X) is the sine of the elements of X
SIN(X) вычисляет функцию синуса элементов массива X.

MATLAB выводит на экран строки файла Contents.m по команде help <имя_каталога>.

Если каталог не содержит файла Contents.m, то по команде help <имя_каталога> распечатывается первая строка комментария для каждого M-файла данного каталога.

Тело функции . Тело функции содержит код языка MATLAB, который выполняет вычисления и присваивает значения выходным аргументам. Операторы в теле функции могут состоять из вызовов функций, программных конструкций для управления потоком команд, интерактивного ввода/вывода, вычислений, присваиваний, комментариев и пустых строк.

Пример

Тело функции average включает ряд простейших операторов программирования:

Как уже говорилось ранее, комментарии отмечаются знаком (%). Строка комментария может быть размещена в любом месте M-файла, в том числе и в конце строки.

Пример

% Найти сумму всех элементов вектора x
y = sum(x) % Использована функция sum
.

Кроме строк комментариев в текст М-файла можно включать пустые строки. Однако надо помнить, что пустая строка может служить указателем окончания подсказки.

Имена М-функций . В системе MATLAB на имена М-функций налагаются те же ограничения, что и на имена переменных - их длина не должна превышать 31 символа. Более точно, имя может быть и длиннее, но система MATLAB принимает во внимание только первые 31 символ. Имена М-функций должны начинаться с буквы; остальные символы могут быть любой комбинацией букв, цифр и подчеркиваний.

Имя файла, содержащего М-функцию, составляется из имени функции и расширения “.m”.

Пример

average.m
Если имя файла и имя функции в строке определения функции разные, то используется имя файла, а внутреннее имя игнорируется. Хотя имя функции, определенное в строке определения функции, может и не совпадать с именем файла, настоятельно рекомендуется использовать одинаковые имена.

Двойственность функций и команд . Команды системы MATLAB - это операторы вида:
load
help

Многие команды могут быть модифицированы добавлением операндов:
load August17.dat
help magic
type rank

Альтернативный метод задания модификаторов - определить их в качестве строковых аргументов функции:

load("August17.dat")
help("magic")
type("rank")

В этом заключается двойственность понятий команды и функции в системе MATLAB. Любая команда вида

command argument

может быть записана в форме функции

command("argument").

Преимущество функционального описания проявляется, когда строка аргументов формируется по частям. Следующий пример показывает, как может быть обработана последовательность файлов August1.dat, August2.dat, и т.д. Здесь используется функция int2str, которая переводит целое число в строку символов, что помогает сформировать последовательность имён файлов.

for d = 1:31
s = ["August" int2str(d) ".dat"]
load(s) %Загрузить файл с именем August"d".dat
% Операторы обработки файла
end