cellfun

应用功能在单元阵列的每个小区

描述

一个= cellfun(FUNCC应用功能FUNC到单元阵列中的每个单元格的内容C中,在每次一个细胞。cellfun然后从串接的输出FUNC入输出数组一个,因此,对于一世的第i个元素CA(ⅰ)= FUNC(C {I})。输入参数FUNC是一个函数句柄,它有一个输入参数,并返回一个标量的函数。从输出FUNC可以具有任何数据类型,只要该类型的对象可以被级联。数组一个和单元阵列C具有相同的大小。

不能指定的顺序cellfun计算的元素一个或者依靠他们以任何具体顺序进行。

一个= cellfun(FUNC,C1,...,CN)适用FUNC到的单元格的内容C1,...,CN, 以便A(ⅰ)= FUNC(C1 {I},...,CN {I})。功能FUNC一定要拿ñ输入参数,并返回一个标量。单元阵列C1,...,CN都必须具有相同的大小。

一个= cellfun(___名称,值适用FUNC与由一个或多个指定的附加选项名称,值对参数。例如,要在单元阵列返回的输出值,指定'UniformOutput',假。您可以返回一个作为一个单元阵列时FUNC返回不能被连接成一个数组值。您可以使用名称,值对参数与先前任一语法的输入参数。

[A1,...,AM] = cellfun(___返回多个输出端阵列A1,...,AM什么时候FUNC回报输出值。FUNC可以返回具有不同的数据类型的输出参数,但每个输出的数据类型必须每次是相同的FUNC叫做。您可以使用此语法与任何以前的语法的输入参数。

输出参数从数FUNC不必是相同的作为由指定的输入参数的个数C1,...,CN

例子

全部收缩

创建包含不同尺寸的数字阵列的单元阵列。

C = {1:10,[2;4;6],[]}
C =1×3单元阵列{1×10双} {3X1双} {为0x0双}

计算每个数字阵列的平均值,并以阵列返回的装置。

A = cellfun(@平均值,C)
A =1×35.5000 4.0000为NaN

创建包含不同大小的数字数组两个单元阵列。

X = {5:5:100,10:10:100,20:20:100};Y = {兰特(1,20),兰特(1,10),兰特(1,5)};

画出阵列。返回从图表线对象的数组情节功能和使用它们不同的标记添加到每个组的数据点。cellfun可以返回任何数据类型的数组,只要该数据类型的对象可以被级联。

身材保持P = cellfun(@情节,X,Y);P(1)= .Marker'O';P(2)= .Marker'+';P(3)= .Marker'S';保持

创建包含不同尺寸的数字阵列的单元阵列。

C = {1:10,[2;4;6],[]}
C =1×3单元阵列{1×10双} {3X1双} {为0x0双}

计算每个阵列的尺寸在C。行和列的数量各自是在1×3数值阵列。

[NROWS,NCOLS] = cellfun(@大小,C)
NROWS =1×31 3 0
NCOLS =1×310 1 0

您可以使用cellfun应用功能,以字符向量的单元阵列和串阵列。cellfun对待两种数组相同。

创建一个包含工作日名称特征向量的单元阵列。

C = {'星期一''星期二''星期三''星期四''星期五'}
C =1×5单元{'周一周二周三周四周五'}

创建使用的名称三个字母的缩写cellfun功能。指定前三个字符并且返回它们的提取物作为字符向量的函数。要在单元格数组中返回的缩写,指定'UniformOutput',假名称 - 值对。

A = cellfun(@(X)×(1:3),C,'UniformOutput',假)
A =1×5单元{ '星期一'} { '星期二'} { '星期三'} { '星期四'} { '星期五'}

您也可以拨打cellfun上的字符串数组。为了兼容,cellfun把一个字符串数组,就好像它是一个字符向量的每个元素。如果指定返回文本的功能,然后cellfun返回它作为字符向量的单元阵列,而不是作为一个字符串数组。

用一个字符串数组创建名称缩写cellfun

海峡= [“星期六”“星期日”]
海峡=1×2串“星期六星期天”
B = cellfun(@(X)×(1:3),STR,'UniformOutput',假)
B =1x2的细胞{'周六周日'}

输入参数

全部收缩

功能应用到输入单元阵列的单元,指定为功能句柄,字符向量,或串标量的内容。

FUNC可对应于一个以上的功能的文件,并因此可以代表一组过载功能。在这些情况下,MATLAB®该功能确定调用基于类的输入参数。

向后兼容性

您可以指定FUNC作为一个特征向量或串标量,而不是一个函数句柄,但只有有限的一组功能名称。FUNC可:'是空的''ISLOGICAL''是真实的''长度''为ndims''prodofsize''尺寸', 要么'isclass'

如果指定一个函数名,而不是一个函数句柄:

  • cellfun不调用该函数的任何重载版本。

  • 尺寸isclass功能需要额外的输入到cellfun功能:

    A = cellfun( '尺寸',C,K)返回沿大小ķ中的每个元素的第N维C

    A = cellfun( 'isclass',C,类名)返回逻辑1真正)的每个元件C相匹配的班级名称论据。此语法返回逻辑0()对于那些的子类对象班级名称

例:A = cellfun(@平均值,C)返回的元件的装置C

输入阵列,指定为单元阵列或一个字符串数组。如果C是一个字符串数组,然后cellfun对待的每个元素C就好像它是一个特征向量,而不是一个字符串。

名称 - 值对参数

指定可选的用逗号分隔的对名称,值参数。名称是参数的名称和是对应的值。名称必须出现引号内。您可以按照任何顺序指定多个名称和值对参数名1,值1,...,NameN,值N

例:A = cellfun(@平均值,C, 'UniformOutput',假)返回从输出意思在一个单元阵列。使用'UniformOutput',假名称 - 值对,如果C包含数字矩阵和意思返回向量。

真或假,指定为逗号分隔的一对组成的'UniformOutput',要么真正1) 要么0)。

的价值'UniformOutput'

描述

真正1

FUNC必须返回标量是cellfun连接成阵列。

0

cellfun返回的输出FUNC在单元阵列。的输出FUNC可以有任何大小和不同的数据类型。

函数来捕捉错误,指定为逗号分隔的一对组成的'的ErrorHandler'和功能手柄。如果FUNC引发错误,则错误处理程序指定由'的ErrorHandler'捕获错误并取入该函数指定的操作。错误处理程序必须要么抛出一个错误或返回相同数量的输出,FUNC。如果价值'UniformOutput'为真,则错误处理程序的输出参数必须是标量,并具有相同的数据类型的输出FUNC

错误处理程序的第一个输入参数是与这些字段的结构:

  • 识别码- 错误标识符

  • 信息- 错误消息文本

  • 指数- 线性索引到输入阵列处FUNC扔了错误

其余的输入参数的错误处理程序是调用的输入参数FUNC这使FUNC抛出错误。

假设FUNC返回两个双打作为输出参数。您可以指定错误处理程序'的ErrorHandler',@ errorFunc,其中errorFunc是提高一个警告,返回两个输出参数的函数。

函数[A,B] = errorFunc(S,varargin)警告(S.identifier,S.message);A = NaN的;B = NaN的;结束

如果没有指定'的ErrorHandler', 然后cellfun重新抛出由引发错误FUNC

输出参数

全部收缩

输出数组,返回任何数据类型的阵列或作为单元阵列。

默认,cellfun串接从输出FUNC成阵列。FUNC必须返回标量。如果FUNC返回的对象,那么该类的对象属于必须满足这些要求。

  • 万博1manbetx支持分配由线性索引到对象阵列

  • 有一个重塑方法,该方法返回具有相同的尺寸与输入的数组

如果该值'UniformOutput'名称 - 值对参数是0), 然后cellfun返回输出在单元阵列。在这种情况下,输出来自FUNC可以有任何大小和不同的数据类型。

扩展功能

R2006a前推出