主要内容

localfunctions

中所有局部函数的句柄MATLAB文件

描述

例子

fcns = localfunctions返回函数句柄的单元格数组,fcns,到当前文件中的所有本地函数。

您不能在命令行或匿名函数的上下文中定义本地函数,因此当您调用localfunctions从这些上下文中,您将得到一个空单元格数组。在单元格数组中,localfunctions以未定义的顺序返回函数句柄。

例子

全部折叠

在文件中创建以下函数:computeEllipseVals.m,在您的工作文件夹中。该函数返回所有本地函数的句柄单元格数组。

函数fh = computeEllipseVals fh = localfunctions;结束函数f =√(a^2-b^2);结束函数f = computeFocus(a,b);e = f / a;结束函数ae = computeArea(a,b) ae = pi*a*b;结束

在命令提示符处,调用该函数以获得本地函数句柄的单元格数组。

跳频= computeEllipseVals
fh = 3x1 cell array {@computeFocus} {@computeEccentricity} {@computeArea}

使用句柄调用局部函数来计算椭圆的面积。的computeArea函数句柄是单元格数组中的第三个元素。

跳频{3}(3,1)
ans = 9.4248

从R2016b开始,您可以在脚本中包含本地函数。因此,您可以使用localfunctions函数创建可以在脚本或命令提示符中调用的函数句柄。

在文件中创建以下脚本:mystats.m,在您的工作文件夹中。该脚本创建了一个包含所有本地函数句柄的单元格数组。

X = [1 3 5 7 9 10 8 6 4 2 0 -2];Avg = mymean(x) fh = localfunctions;地中海= fh {2} (x)%等价于med = mymedian(x,n)函数A = mymean(v) n = length(v)一个= (v) / n;结束函数M = mymedian(v) n = length(v)w = (v)进行排序;如果Rem (n,2) == 1 m = w(n + 1)/2);其他的M = w(n/2) + w(n/2 + 1))/2;结束结束

运行脚本。MATLAB®通过直接调用mymean局部函数来计算平均值,通过调用中值来计算中值mymedian通过函数句柄实现局部函数。

mystats
平均值= 4.4167 med = 4.5000

在命令提示符处,调用mymean使用句柄的局部函数。脚本中的变量可以在命令提示符处访问。的mymean函数句柄是单元格数组中的第一个元素。

X2 = [1 12 6 24 120 720 5040];Fh avg2 = Fh {2}(x2)
Fh = 2x1 cell array {@mymean} {@mymedian} avg2 = 15

另请参阅

主题

介绍了R2013b