arrayfun
将函数应用于每个数组元素
语法
说明
应用 B = arrayfun(___,Name,Value)func 并使用一个或多个 Name,Value 对组参量指定其他选项。例如,要以元胞数组形式返回输出值,请指定 'UniformOutput',false。当 func 返回的值不能串联成数组时,可以按元胞数组的形式返回 B。您可以将 Name,Value 对组参量与上述任何语法中的输入参量结合使用。
当 func 返回 m 个输出值时,[B1,...,Bm] = arrayfun(___) 返回多个输出数组 B1,...,Bm。func 可以返回不同数据类型的输出参量,但每次调用 func 时返回的每个输出的数据类型必须相同。您可将此语法与上述语法中的任何输入参量一起使用。
从 func 返回的输出参量的数量不必与 A1,...,An 指定的输入参量的数量相同。
示例
输入参数
名称-值参数
输出参量
限制
异构数组
当
UniformOutput设置为true时,arrayfun不支持异构数组。复数输入数组的行为差异
如果输入数组
A是复数数组,并且一些元素的虚部等于零,则调用arrayfun并对数组进行索引可能会导致不同结果。arrayfun函数始终将此类数字视为虚部等于零的复数。但是,索引会以实数形式返回这些值。为了演示行为的不同,首先创建一个复数数组。
A = zeros(2,1); A(1) = 1; A(2) = 0 + 1i
A = 1.0000 + 0.0000i 0.0000 + 1.0000i
然后创建一个元胞数组,并将
A的元素赋给它。当您对A(1)进行索引时,其值作为实数返回,因为其虚部等于零。您可以在C1的不同元胞中存储实数和复数值,因为元胞数组可以存储不同类型的数据。C1 = cell(2,1); C1{1} = A(1); C1{2} = A(2)C1 = 2×1 cell array {[ 1]} {[0.0000 + 1.0000i]}调用
arrayfun并访问A的元素。将其值赋给一个元胞数组。当arrayfun访问A(1)时,它会将该值视为复数,并将其赋给C2{1}。C2 = arrayfun(@(x) x, A, 'UniformOutput', false)C2 = 2×1 cell array {[1.0000 + 0.0000i]} {[0.0000 + 1.0000i]}
扩展功能
版本历史记录
在 R2006a 之前推出
另请参阅
structfun | cellfun | spfun | cell2mat | splitapply | varfun | rowfun | groupsummary
