Добавление функций к скриптам

Начиная в 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.

Похожие темы