文档帮助中心
应用函数数组的每个元素
B=arrayfun(函数,A)
B=数组(func,A1,…,An)
B = arrayfun(___,名称,值)
[B1,...,家蚕] = arrayfun(___)
例子
乙= arrayfun(FUNC,一个)应用功能FUNC到的元素一个,一次一个元件。arrayfun然后从串接的输出FUNC入输出数组乙,因此,对于我第个元素一个,B(i)=函数(A(i)).输入参数FUNC是接受一个输入参数并返回标量的函数的函数句柄。输出来自FUNC可以具有任何数据类型,只要该类型的对象可以被级联。该阵列一个和乙有同样的尺寸。
乙= arrayfun(FUNC,一个)
乙
FUNC
一个
arrayfun
我
B(i)=函数(A(i))
不能指定arrayfun计算的元素乙或者依靠他们按照任何特定的顺序来做。
乙= arrayfun(FUNC,A1,…,安)应用FUNC到数组的元素A1,…,一个, 以便B(i)=函数(A1(i),…,An(i)). 功能FUNC一定要拿n个输入参数并返回标量。阵列A1,…,一个所有的都必须有相同的尺寸。
乙= arrayfun(FUNC,A1,…,安)
A1,…,一个
B(i)=函数(A1(i),…,An(i))
n个
乙= arrayfun(___,名称、值)应用FUNC由一个或多个指定的附加选项名称、值对参数。例如,要在单元阵列返回的输出值,指定'UniformOutput',假.您可以返回乙作为一个单元阵列时FUNC返回不能连接到数组中的值。你可以用名称、值对参数与先前任一语法的输入参数。
乙= arrayfun(___,名称、值)
名称、值
'UniformOutput',假
[B1,...,家蚕] = arrayfun(___)返回多个输出数组B1,…,Bm什么时候FUNC回报米输出值。FUNC可以返回具有不同的数据类型的输出参数,但每个输出的数据类型必须每次是相同的FUNC被称为。可以将此语法与以前语法的任何输入参数一起使用。
B1,…,Bm
米
来自的输出参数数FUNC不必是相同的作为由指定的输入参数的个数A1,…,一个.
全部折叠
创建一个非标量结构阵列。每个结构都有一个包含随机数的向量场。该向量具有不同的尺寸。
S(1)= .f1兰特(1,5);S(2)= .f1兰特(1,10);S(3)= .f1兰特(1,15)
S =带字段的1×3结构数组:一层
计算中每个字段的平均值S公司通过使用arrayfun功能。您不能使用结构乐趣因为结构乐趣必须是标量结构。
S公司
结构乐趣
A=arrayfun(@(x)平均值(x.f1),S)
一个=1×30.6786 0.6216 0.6069
创建一个结构阵列,其中每个结构具有包含数字数组两个字段。
S(1).X = 5:5:100;S(1)= .Y兰特(1,20);S(2)= .X 10:10:100;S(2)= .Y兰特(1,10);S(3)·X = 20:20:100;S(3)= .Y兰特(1,5)
S =带字段的1×3结构数组:X Y
绘制数值数组。从返回图表行对象数组情节功能和使用它们不同的标记添加到每个组的数据点。arrayfun可以只要该数据类型的对象可以被级联返回任何数据类型的阵列。
情节
身材保持上p=arrayfun(@(a)绘图(a.X,a.Y),S);p(1)标记='O';P(2)= .Marker'+';p(3)标记=“的”;保持远离的
创建一个非标量结构阵列。每个结构具有包含数值矩阵的字段。
S(1)= .f1兰特(3,5);S(2)= .f1兰特(6,10);S(3)= .f1兰特(4,2)
计算中每个字段的平均值S公司通过使用arrayfun功能。意思返回包含每列平均值的向量,因此平均值不能作为数组返回。若要返回单元格数组中的平均值,请指定'UniformOutput',假名称 - 值对。
意思
A=arrayfun(@(x)平均值(x.f1),S,'UniformOutput',错误)
一个=1×3单元阵列{1×5双} {1×10双} {1×2双}
创建一个非标量结构阵列。
S(1).f1=1:10;S(2).f1=[2;4;6];S(3).f1=[]
计算每个字段的大小S公司通过使用arrayfun功能。行和列的数量各自是在1×3数值阵列。
[NROWS,NCOLS] = arrayfun(@(x)的大小(x.f1),S)
NROWS =1×31 3 0
NCOLS =1×310个10个
应用于输入数组元素的函数,指定为函数句柄。
FUNC可对应于一个以上的功能的文件,并因此可以代表一组过载功能。在这些情况下,MATLAB®该功能确定调用基于类的输入参数。
例:B = arrayfun(@圆形,A)返回的每个元素的整数部分一个.
B = arrayfun(@圆形,A)
输入数组。一个可以是属于任一个基本数据类型的阵列,除了桌子和时间表,或任何支持线性索引的类。金宝app
桌子
时间表
要应用功能表或时间表的内容,请使用varfun,罗芬,splitapply, 要么组摘要功能。
varfun
罗芬
splitapply
组摘要
如果你定义的类一个属于,你也过载子参考要么大小的方法一个,然后arrayfun放在这些要求一个:
子参考
大小
这个大小方法一个必须返回double数组。
一个必须支持线金宝app性索引。
尺寸的产品返回由大小方法不得超过极限一个,如由线性索引定义成一个.
指定可选的逗号分隔对名称、值参数。名称是参数名和价值是对应的值。名称必须出现在引号内。可以按任意顺序指定多个名称和值对参数,如下所示名1,值1,...,NameN,值N.
名称
价值
名1,值1,...,NameN,值N
A=arrayfun(@(x)平均值(x.f1),S,'UniformOutput',false)
一层
'UniformOutput'
真的
假
真或假,指定为逗号分隔的一对组成的'UniformOutput',要么真的(1个)或者假(0个).
1个
0个
价值'UniformOutput'
描述
真的(1个)
FUNC必须返回标量arrayfun连接成阵列。
假(0个)
arrayfun返回的输出FUNC在单元格数组中。的输出FUNC可以有任何大小和不同的数据类型。
'错误处理程序'
函数来捕捉错误,指定为逗号分隔的一对组成的'错误处理程序'和功能手柄。如果FUNC引发错误,则错误处理程序指定由'错误处理程序'捕获错误并执行函数中指定的操作。错误处理程序必须抛出错误或返回与FUNC.如果价值'UniformOutput'为true,则错误处理程序的输出参数必须是标量,并且具有与的输出相同的数据类型FUNC.
错误处理程序的第一个输入参数是具有以下字段的结构:
识别码- 错误标识符
识别码
消息-错误消息文本
消息
指数- 线性索引到输入阵列处FUNC抛出错误
指数
错误处理程序的其余输入参数是调用FUNC这使FUNC抛出错误。
假设FUNC返回两个双打作为输出参数。您可以指定错误处理程序'错误处理程序',@errorFunc,其中errorFunc是提高一个警告,返回两个输出参数的函数。
'错误处理程序',@errorFunc
errorFunc
函数[A,B] = errorFunc(S,varargin)警告(S.identifier,S.message);A = NaN的;B = NaN的;结束
如果您没有指定'错误处理程序',然后arrayfun重新引发FUNC.
输出数组,返回任何数据类型的阵列或作为单元阵列。
默认,arrayfun连接输出FUNC排列成一列。FUNC必须返回标量。如果FUNC返回对象,则对象所属的类必须满足这些要求。
金宝app通过对象数组的线性索引支持赋值
有一个重塑方法返回与输入大小相同的数组
重塑
如果'UniformOutput'名称 - 值对参数是假(0个), 然后arrayfun返回单元格数组中的输出。在这种情况下,来自FUNC可以有任何大小和不同的数据类型。
此函数支持具有以下限制的高数金宝app组:
指定的函数必须不依赖于持久的变量。
持久的
这个'错误处理程序'不支持名称 - 值对。金宝app
与'UniformOutput'名称 - 值对集合到真的(默认情况下),指定函数的输出必须是数字、逻辑、字符或单元格数组。
欲了解更多信息,请参阅对于超出的内存数据高大数组.
使用注意事项和限制:
代码生成不支持金宝app'错误处理程序'选项。
代码生成不支持金宝app'UniformOutput'选择。输入函数arrayfun必须返回一个或多个可连接到数组的标量。
代码生成不支持单元阵列的输入金宝appFUNC.
预先确定的输出类型FUNC,代码生成器可以调用FUNC处理前阿库马拉输入参数。
阿库马拉
如果执行的FUNC引起的副作用,例如通过修改全局或持久变量或打印输出,然后将所生成的代码的结果可以从MATLAB的结果不同。
如果输入到阵列阿库马拉为空,则代码生成器可以使用零值输入预先确定输出类型。FUNC当其输入是零时,或所生成的代码可能会产生意外的错误一定不能出错。
见arrayfun在并行计算工具箱™文档。
此功能完全支持分布式数组。金宝app欲了解更多信息,请参阅与分布阵列运行MATLAB功能(并行计算工具箱)。
细胞2mat|cellfun|组摘要|罗芬|间谍活动|splitapply|结构乐趣|varfun
细胞2mat
cellfun
间谍活动
这个例子的修改版本的系统上存在。你要打开这个版本呢?
您单击了与此MATLAB命令对应的链接:
在MATLAB命令窗口中输入它运行的命令。Web浏览器不支持MATLAB的命令。金宝app
选择一个网站,以获得翻译的内容,其中可看到当地的活动和优惠。根据您的位置,我们建议您选择:.
也可以从以下列表中选择网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家/地区网站未针对您所在位置的访问进行优化。
请联系您当地的办事处