МАТЛАБ — Функции
Функция — это группа операторов, которые вместе выполняют задачу. В MATLAB функции определяются в отдельных файлах. Имя файла и функции должны совпадать.
Функции работают с переменными в своей собственной рабочей области, которая также называется локальной рабочей областью. , отдельно от рабочей области, к которой вы обращаетесь в командной строке MATLAB, которая называется базовая рабочая область .
Функции могут принимать более одного входного аргумента и могут возвращать более одного выходного аргумента.
Синтаксис оператора функции —
01
Пример
Следующая функция с именем mymax должен быть записан в файл с именем mymax.m . Он принимает пять чисел в качестве аргумента и возвращает максимальное число.
Создайте файл функции с именем mymax.m и введите в него следующий код —
10пре>Первая строка функции начинается с ключевого слова функция. . Он дает имя функции и порядок аргументов. В нашем примере mymax функция имеет пять входных аргументов и один выходной аргумент.
Строки комментариев, идущие сразу после оператора функции, содержат текст справки. Эти строки печатаются при вводе —
28MATLAB выполнит приведенный выше оператор и вернет следующий результат —
32Вы можете вызвать функцию как -
40MATLAB выполнит приведенный выше оператор и вернет следующий результат —
59Анонимные функции
Анонимная функция похожа на встроенную функцию в традиционных языках программирования, определенную в одном операторе MATLAB. Он состоит из одного выражения MATLAB и любого количества входных и выходных аргументов.
Вы можете определить анонимную функцию прямо в командной строке MATLAB или внутри функции или скрипта.
Таким образом, вы можете создавать простые функции, не создавая для них файл.
Синтаксис для создания анонимной функции из выражения:
61Пример
В этом примере мы напишем анонимную функцию с именем power, которая примет на вход два числа и вернет первое число, возведенное в степень второго числа.
Создайте файл сценария и введите в него следующий код —
Живая демонстрация73Когда вы запускаете файл, он отображает -
80Основные и вспомогательные функции
Любая функция, кроме анонимной, должна быть определена в файле. Каждый файл функции содержит обязательную основную функцию, которая появляется первой, и любое количество необязательных подфункций, которые идут после основной функции и используются ею.
Первичные функции можно вызывать из-за пределов определяющего их файла либо из командной строки, либо из других функций, но подфункции нельзя вызывать из командной строки или других функций вне файла функций.
Подфункции видны только основной функции и другим подфункциям в файле функций, который их определяет.
Пример
Напишем функцию с именем quadratic, которая будет вычислять корни квадратного уравнения. Функция будет принимать три входа:квадратичный коэффициент, линейный коэффициент и постоянный член. Это вернет корни.
Файл функций quadratic.m будет содержать основную функцию quadratic. и подфункция диск , который вычисляет дискриминант.
Создайте файл функции quadratic.m и введите в него следующий код —
90Вы можете вызвать вышеуказанную функцию из командной строки как -
107MATLAB выполнит приведенный выше оператор и вернет следующий результат —
115Вложенные функции
Вы можете определять функции в теле другой функции. Они называются вложенными функциями. Вложенная функция содержит любой или все компоненты любой другой функции.
Вложенные функции определяются в рамках другой функции и имеют общий доступ к рабочему пространству содержащей функции.
Вложенная функция следует следующему синтаксису —
120Пример
Перепишем функцию quadratic , из предыдущего примера, однако на этот раз функция диска будет вложенной функцией.
Создайте файл функции quadratic2.m и введите в него следующий код —
134Вы можете вызвать вышеуказанную функцию из командной строки как -
147MATLAB выполнит приведенный выше оператор и вернет следующий результат —
159Частные функции
Частная функция — это основная функция, видимая только для ограниченной группы других функций. Если вы не хотите раскрывать реализацию функции (функций), вы можете создать их как частные функции.
Частные функции находятся в подпапках. со специальным именем private .
Они видны только функциям в родительской папке.
Пример
Давайте перепишем квадратный функция. Однако на этот раз диск функция, вычисляющая дискриминант, будет частной функцией.
Создайте подпапку с именем private в рабочем каталоге. Сохраните следующий функциональный файл disc.m в нем —
166Создайте функцию quadratic3.m в своем рабочем каталоге и введите в нее следующий код —
179Вы можете вызвать вышеуказанную функцию из командной строки как -
187MATLAB выполнит приведенный выше оператор и вернет следующий результат —
197Глобальные переменные
Глобальные переменные могут совместно использоваться более чем одной функцией. Для этого вам нужно объявить переменную глобальной во всех функциях.
Если вы хотите получить доступ к этой переменной из базовой рабочей области, объявите переменную в командной строке.
Глобальное объявление должно произойти до фактического использования переменной в функции. Рекомендуется использовать заглавные буквы в именах глобальных переменных, чтобы отличать их от других переменных.
Пример
Давайте создадим файл функции с именем medium.m и введем в него следующий код —
202Создайте файл сценария и введите в него следующий код —
210Когда вы запустите файл, он отобразит следующий результат —
220
MATLAB