主要内容

cellfun

应用函数单元阵列中的每个细胞

描述

例子

一个= cellfun (函数,C)应用函数函数单元阵列的每个单元格的内容C一次,一个细胞。cellfun然后连接输出函数到输出数组一个,这样的th元素C,(我)= func (C{我})。输入参数函数处理函数是一个函数,它接受一个输入参数,并返回一个标量。的输出函数可以有任何数据类型,只要该类型的对象可以连接。数组一个和细胞数组C有相同的大小。

你不能指定的顺序cellfun计算的元素一个或者依靠他们在任何特定的顺序。

例子

一个= cellfun (函数,C1,…, Cn)适用于函数细胞的内容C1,…, Cn,所以(我)= func (C1{我},…,Cn{我})。这个函数函数必须采取n输入参数和返回一个标量。细胞数组C1,…, Cn所有人都必须有相同的大小。

例子

一个= cellfun (___,名称,值)适用于函数由一个或多个指定附加选项名称,值对参数。例如,返回单元阵列输出值,指定“UniformOutput”,假的。你可以返回一个作为一个单元阵列函数返回值不能被连接到一个数组中。您可以使用名称,值对参数的输入参数的前面的语法。

例子

(A1,…,一个米]= cellfun (___)返回多个输出数组A1,…,函数返回输出值。函数可以返回输出参数有不同的数据类型,但是每个输出的数据类型必须相同每次函数被称为。您可以使用该语法与任何输入参数的前面的语法。

输出参数的数量函数不需要指定的输入参数的数量一样C1,…, Cn

例子

全部折叠

创建一个单元阵列,其中包含数值数组大小不同的。

C = {1:10, [2;4;6],[]}
C =1×3单元阵列{(1 2 3 4 5 6 7…]}{3 x1双}{0 x0双}

计算每个数字的意思是数组,数组中返回的手段。

= cellfun (@mean C)
一个=1×35.5000 - 4.0000南

创建两个细胞包含数值数组大小不同的数组。

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

情节的数组。返回一个数组的图线对象情节功能和使用它们来添加不同的标记每一组数据点。cellfun可以返回任何数据类型的数组,只要可以连接对象的数据类型。

图保存p = cellfun (@plot, X, Y);(1页)。标志=“o”;(2页)。标志=“+”;(3页)。标志=“年代”;持有

图包含一个坐标轴对象。坐标轴对象包含3线类型的对象。

创建一个单元阵列,其中包含数值数组大小不同的。

C = {1:10, [2;4;6],[]}
C =1×3单元阵列{(1 2 3 4 5 6 7…]}{3 x1双}{0 x0双}

计算每个数组的大小C。行和列的数量都在1×3数字数组。

[nrows, ncols] = cellfun (@ C)
nrows =1×31 3 0
ncols =1×310 1 0

您可以使用cellfun功能应用于细胞特征向量数组和字符串数组。cellfun将两种类型的数组相同。

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

C = {“周一”,“星期二”,“星期三”,“星期四”,“星期五”}
C =1 x5单元格{“周一”}{“周二”}{“星期三”}{“星期四”}{“星期五”}

创建三个字母的缩写名称使用cellfun函数。指定一个函数,提取前三个字符并返回它们作为特征向量。返回单元阵列中的缩写,指定“UniformOutput”,假的名称-值对。

一个= cellfun (@ (x) x (1:3), C,“UniformOutput”假)
一个=1 x5单元格{'我的'}{“星期二”}{‘结婚’}{“清华”}{“星期五”}

你也可以叫cellfun在一个字符串数组。的兼容性,cellfun将一个字符串数组的每个元素,好像一个特征向量。如果你指定一个函数,它返回文本,那么cellfun返回单元阵列的特征向量,而不是一个字符串数组。

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

str = [“星期六”,“星期天”]
str =1 x2字符串“星期六”“星期天”
B = cellfun (@ (x) x (1:3), str,“UniformOutput”假)
B =1 x2单元格“坐”{}{‘太阳’}

输入参数

全部折叠

功能适用于细胞的输入数组的内容,指定为一个函数处理,特征向量,或字符串标量。

函数可以对应多个函数文件,因此可以代表一组重载函数。在这些情况下,MATLAB®确定哪些函数来调用基于类的输入参数。

向后兼容性

您可以指定函数作为一个特征向量或字符串标量,而不是一个函数处理,但只有一组有限的函数名。函数可以是:“isempty”,“islogical”,“伊斯雷尔”,“长度”,“ndims”,“prodofsize”,“大小”,或“isclass”

如果你指定一个函数名,而不是一个函数处理:

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

  • 大小isclass功能需要额外的输入cellfun功能:

    一个= cellfun(“大小”C k)收益的大小k维度的每个元素C

    一个= cellfun (isclass的C类名)返回逻辑1(真正的的每个元素C相匹配的类名称论点。这个语法返回逻辑0 ()的一个子类的对象类名称

例子:= cellfun (@mean C)返回的元素C

输入数组,指定为一个单元格数组或字符串数组。如果C是一个字符串数组,然后呢cellfun将每个元素的C好像是一个特征向量,而不是一个字符串。

名称-值参数

指定可选的逗号分隔条名称,值参数。的名字参数名称和吗价值相应的价值。的名字必须出现在引号。您可以指定几个名称和值对参数在任何顺序Name1, Value1,…,的家

例子:= cellfun (@mean C UniformOutput,假)返回的输出的意思是在一个单元阵列。使用“UniformOutput”,假的名称-值对,如果C包含数字矩阵和的意思是返回向量。

或真或假,指定为逗号分隔组成的“UniformOutput”,要么真正的(1)或(0)。

的价值“UniformOutput”

描述

真正的(1)

函数必须返回标量cellfun连接到阵列。

(0)

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

函数来捕获错误,指定为逗号分隔组成的“ErrorHandler”和一个函数处理。如果函数抛出一个错误,然后指定的错误处理程序“ErrorHandler”捕获错误和行动中指定的函数。错误处理程序必须抛出一个错误或返回相同数量的输出函数。如果该值的“UniformOutput”是真的,那么错误处理程序的输出参数必须标量和有相同的数据类型的输出函数

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

  • 标识符——错误标识符

  • 消息——错误消息文本

  • 指数——线性的输入数组索引函数把错误

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

假设函数返回两个双打作为输出参数。您可以指定的错误处理程序ErrorHandler, @errorFunc,在那里errorFunc是一个函数,提出了一个警告,并返回两个输出参数。

函数[A, B] = errorFunc (S (S,变长度输入宗量)警告。标识符,S.message);一个=南;B =南;结束

如果你不指定“ErrorHandler”,然后cellfun重新抛出错误抛出函数

输出参数

全部折叠

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

默认情况下,cellfun连接的输出函数到一个数组中。函数必须返回标量。如果函数返回对象,那么类的对象属于必须满足这些要求。

  • 金宝app支持赋值线性索引对象数组

  • 有一个重塑同样大小的方法,该方法返回一个数组作为输入

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

扩展功能

之前介绍过的R2006a