Начиная в R2016b, скрипты MATLAB®, включая live скрипты, могут содержать код, чтобы задать функции. Эти функции вызваны local functions. Локальные функции полезны, если вы хотите снова использовать код в рамках скрипта. Путем добавления локальных функций можно постараться не создавать и файлы отдельной функции управления. Они также полезны для экспериментирования с функциями, которые могут быть добавлены, изменены и удалены легко по мере необходимости.
Чтобы создать скрипт или live скрипт с локальными функциями, перейдите к вкладке Home и выберите New> Script или New> Live Script. Затем добавьте код в скрипт. Добавьте все локальные функции в конце файла после кода скрипта. Включайте по крайней мере одну линию кода скрипта перед локальными функциями. Каждая локальная функция должна начаться со своего собственного функционального оператора определения и закончиться end
ключевое слово. Функции могут появиться в любом порядке.
Например, создайте скрипт под названием mystats.m
.
edit mystats
В файле включайте две локальных функции, mymean
и mymedian
. Скрипт mystats
объявляет массив, определяет длину массива, и затем использует локальные функции mymean
и mymedian
вычислить среднее значение и медиану массива.
x = 1:10; n = length(x); avg = mymean(x,n); med = mymedian(x,n); function a = mymean(v,n) % MYMEAN Local function that calculates mean of array. a = sum(v)/n; end function m = mymedian(v,n) % MYMEDIAN Local function that calculates median of array. w = sort(v); if rem(n,2) == 1 m = w((n + 1)/2); else m = (w(n/2) + w(n/2 + 1))/2; end end
Когда вы добавляете локальные функции в live скрипт, MATLAB автоматически добавляет разрыв раздела перед первым определением локальной функции и удаляет все разрывы раздела после него. Это вызвано тем, что live скрипты не поддерживают отдельные разделы в локальных функциях.
Чтобы запустить скрипт или live скрипт, который включает локальные функции во вкладке Editor или Live Editor, нажимают кнопку Run. Также можно ввести сохраненное имя скрипта в Командном окне.
Чтобы запустить отдельный раздел, установите курсор в разделе и используйте
кнопку Run Section (требует R2017b или позже для .m
файлы). В .mlx
файлы, можно запустить разделы только, когда они перед определениями локальной функции.
Локальные функции только отображаются в файле, где они заданы. Они не отображаются к функциям в других файлах и не могут быть названы из Командного окна.
Локальные функции в текущем файле имеют приоритет по функциям в других файлах. Таким образом, когда вы вызываете функцию в рамках скрипта, проверки MATLAB, является ли функция локальной функцией перед поиском функции в других местоположениях. Это позволяет вам создавать альтернативную версию конкретной функции при сохранении оригинала в другом файле.
Скрипты создают и переменные доступа в базовом рабочем пространстве. Локальные функции, как все другие функции, имеют свои собственные рабочие области, которые являются отдельными от базового рабочего пространства. Локальные функции не могут переменные доступа в рабочей области других функций или в базовом рабочем пространстве, если вы не передаете их в качестве аргументов.
Несмотря на то, что вы не можете вызвать локальную функцию из командной строки или из функций в других файлах, можно получить доступ к ее справке с помощью help
команда. Задайте имена и скрипта и локальной функции, разделив их >
символ.
Например:
help mystats>mymean
mymean Local function that calculates mean of array.