С R2016b можно включать локальные функции в скрипты. Поэтому можно использовать функцию localfunctions
, чтобы создать указатели на функцию, которые можно вызвать в скрипте или в командной строке.
Создайте следующий скрипт в файле, mystats.m
, в вашей рабочей папке. Скрипт создает массив ячеек с указателями на все локальные функции.
x = [1 3 5 7 9 10 8 6 4 2 0 -2];
avg = mymean(x)
fh = localfunctions;
med = fh{2}(x) % equivalent to med = mymedian(x,n)
function a = mymean(v)
n = length(v);
a = sum(v)/n;
end
function m = mymedian(v)
n = length(v);
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
Запустите скрипт. MATLAB® вычисляет среднее значение путем прямого вызова mymean локальной функции и медианы путем вызова локальной функции mymedian
через указатель на функцию.
avg =
4.4167
med =
4.5000
В командной строке вызовите локальную функцию mymean
с помощью ее указателя. Переменные из скрипта доступны в командной строке. Указатель на функцию mymean
является первым элементом в массиве ячеек.
fh =
2x1 cell array
{ @mymean}
{@mymedian}
avg2 =
15