文档帮助中心文档
将函数应用于表或时间表变量
B = varfun(func,A)
B = varfun(func,A,名称,值)
例子
B= varfun (函数,一个)应用函数函数分别对每个变量的表或时间表一个并返回表或时间表中的结果B.
B= varfun (函数,一个)
B
函数
一个
这个函数函数每次调用时必须接受一个输入参数并返回具有相同行数的数组。的我输出参数中的第Th变量,B{:,我},等于func({:,我}).
我
B{:,我}
func({:,我})
如果一个是一个时间表函数然后在行组上聚合数据varfun中每组行的第一行时间一个作为相应的行时间B.返回B指定为没有行次数的表“OutputFormat”作为“表”.
varfun
“OutputFormat”
“表”
B= varfun (函数,一个,名称,值)应用函数函数分别对每个变量的表或时间表一个带有一个或多个指定的附加选项名称,值对参数。
B= varfun (函数,一个,名称,值)
名称,值
例如,您可以指定将哪些变量传递给函数。
全部折叠
定义一个元素函数,并将其应用于表的变量,以对所有元素进行平方。
定义一个包含数值变量的表。
一个=表([0.71;-2.05;-0.35;-0.82;1.57],[0.23;0.12;-0.18;0.23;0.41])
一个=5×2表Var1 Var2 _____ _____ 0.71 0.23 -2.05 0.12 -0.35 -0.18 -0.82 0.23 1.57 0.41
定义匿名函数以查找输入的平方。
Func = @(x) x.^2;
将函数应用于表中的所有变量一个.
B =5×2表Fun_Var1 Fun_Var2 ________ ________ 0.5041 0.0529 4.2025 0.0144 0.1225 0.0324 0.6724 0.0529 2.4649 0.1681
的变量B有名称基于函数和变量名从一个.
计算5 × 2表中每个变量的平均值。
定义匿名函数以查找输入的平均值。
Func = @mean;
函数使用现有的MATLAB®函数来定义操作。
B =1×2表mean_Var1 mean_Var2 _________ _________ - 0.188 - 0.162
B是一个包含每个变量的平均值的表。若要返回数字向量而不是表,可以使用B = varfun(func,A,'OutputFormat','uniform').
B = varfun(func,A,'OutputFormat','uniform')
计算表中变量的分组均值,一个,并将它们作为表中的行返回,B.
创建一个表,其中一个变量定义组。
A = table({“test2”;“test1”;“test2”;“test3”;“test1”},...(0.71; -2.05; -0.35; -0.82; 1.57], [0.23; 0.12; -0.18; 0.23; 0.41])
一个=5×3表Var1 Var2 Var3 _________ _____ _____ {' test2} 0.71 0.23 {test1的}-2.05 - 0.12 {test2的}-0.35 - -0.18{‘test3} -0.82 - 0.23 1.57 - 0.41 {test1的}
将函数应用于定义的每组数据Var1.
Var1
B = varfun(func,A,“GroupingVariables”,“Var1”)
B =3×4表Var1 GroupCount mean_Var2 mean_Var3 _________ __________ _________ _________ {' test1的}2 -0.24 - 0.265 {test2的}2 0.18 - 0.025{‘test3} 1 -0.82 - 0.23
B包含一个名为GroupCount表示表中条目的数量一个在那个组里。
GroupCount
创建包含示例数据的时间表。时间表的行时间也定义了组。
Dt = datetime(2016,1,1)+days([0 1 1 2 3 3])';=时间表(dt, [0.71; -2.05; -0.35; -0.82; 1.57; 0.09),...[0.23; 0.12; -0.18; 0.23; 0.41; 0.02),...“VariableNames”, {“x”“y”})
一个=6×2时间表dt x y ___________ __________ 01- 01- 2016年1月0.71 0.23 02- 2016年1月-2.05 0.12 02- 2016年1月-0.35 -0.18 03- 2016年1月-0.82 0.23 04- 2016年1月1.57 0.41 04- 2016年1月0.09 0.02
计算时间表中变量的分组均值。varfun返回B作为一个时间表一个是一个时间表。当指定行时间作为分组变量时,不能将任何变量指定为另一个分组变量。
B = varfun(@mean,A,“GroupingVariables”,“dt”)
B =4×3的时间表dt GroupCount mean_x mean_y ___________ __________ ______ ______ 01 - 2016年1月——1 0.71 0.23 02 - 1月- 2016 2 -1.2 - -0.03 03 - 1月- 2016年1月1 -0.82 - 0.23 04 - - 2016 2 0.83 - 0.215
函数,指定为函数句柄。可以在文件中定义函数,也可以将函数定义为匿名函数。如果函数对应于多个函数文件(即如果函数表示一组重载函数),MATLAB®根据输入参数的类确定调用哪个函数。
使用“OutputFormat”、“细胞”名称-值对参数,如果函数函数取一个输入参数,每次调用时返回具有不同行数的数组。否则,函数必须返回具有相同行数的数组。
“OutputFormat”、“细胞”
例子:Func = @(x) x.^2;计算输入中每个元素的平方。
输入表,指定为表或时间表。
的可选逗号分隔对名称,值参数。的名字参数名称和价值对应的值。的名字必须出现在引号内。您可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家.
的名字
价值
Name1, Value1,…,的家
“数据源”,2
数据源
的选择变量的说明符一个传递到函数,指定为逗号分隔的对,由“数据源”一个正整数,正整数的向量,字符向量,字符向量的单元格数组,字符串数组,逻辑向量,或者一个函数句柄。
“数据源”
如果你指定“数据源”作为函数句柄,则它必须返回逻辑标量和varfun只传入变量一个函数返回的位置1(真正的).
1
真正的
GroupingVariables
一个或多个变量一个定义行组,指定为由逗号分隔的对组成“GroupingVariables”和正整数,正整数的向量,字符向量,字符向量的单元格数组,字符串数组,或者逻辑向量。
“GroupingVariables”
的价值“GroupingVariables”指定哪些表变量是分组变量,而不是它们的数据类型。分组变量可以是数值型的,也可以是数据类型的分类,calendarDuration,datetime,持续时间,逻辑,或字符串.
分类
calendarDuration
datetime
持续时间
逻辑
字符串
行一个具有相同分组变量值的组属于同一组。varfun适用于函数的每个变量中的每组行一个,而不是每个完整的变量。
如果任何分组变量包含南S或缺失值(例如NaTS,未定义的分类值,或缺少字符串),则相应的行不属于任何组,并从输出中排除。
南
NaT
行标签可以对变量进行分组。中的一个或多个变量都可以单独按行标签进行分组一个,或者将行标签和变量放在一起。
如果一个是一个表,那么标签就是行名。
如果一个是一个时间表,然后标签是行时间。
输出,B,在指定时,每个组都有一行“OutputFormat”、“制服”或“OutputFormat”、“细胞”.当你指定“OutputFormat”、“表”或“OutputFormat”、“时间表”的输出大小函数确定有多少行B对应每个组。
“OutputFormat”、“制服”
“OutputFormat”、“表”
“OutputFormat”、“时间表”
OutputFormat
“时间表”
“统一”
“细胞”
的格式B,指定为逗号分隔的对,由“OutputFormat”要么是值“统一”,“表”,“时间表”,或“细胞”.
varfun返回一个表,其中每个变量对应一个变量一个(或每个变量指定“数据源”).对于分组计算,B,也包含分组变量。
“表”中不同变量返回不同大小或数据类型的值的函数一个.然而,对于非分组计算,函数每次调用时必须返回具有相同行数的数组。对于分组计算,函数每次为给定组调用时,必须返回具有相同行数的值。
如果一个是一个表,则这是默认的输出格式。
varfun返回一个时间表,其中每个变量对应一个变量一个(或每个变量指定“数据源”).对于分组计算,B还包含分组变量。
varfun的行时间B的行次一个.如果行被赋值B在使用?进行计算的上下文中没有意义函数,然后指定输出格式为“OutputFormat”、“表”.
如果一个是时间表,则这是默认的输出格式。
varfun将值连接到一个向量中。函数每次调用时必须返回具有相同数据类型的标量。
varfun返回B作为单元格数组。“细胞”允许您使用返回不同大小或数据类型值的函数。
ErrorHandler
函数调用if函数失败,指定为逗号分隔的对,由“ErrorHandler”和一个函数句柄。定义此函数,使其重新抛出错误或返回函数的有效输出函数.
“ErrorHandler”
MATLAB使用两个输入参数调用指定的错误处理函数:
一个包含这些字段的结构:
标识符
错误的标识符。
消息
错误消息文本。
指数
发生错误的变量的索引。
发生错误的变量的名称。
函数的输入参数集函数在错误发生的时候。
例如,
函数[A, B] = errorFunc(S, varargin) warning(S。标识符,S.message) A = NaN;B = NaN;
输出表,作为表或时间表返回。B可以存储元数据,如描述、变量单位、变量名和行名。的属性部分,以获取更多信息表格或时间表.
表格
时间表
该函数支持高数组,但有以下限金宝app制:
的函数输入必须总是返回一个高数组。
金宝app支持的名值对有:
“数据源”-不能指定为函数句柄。
“OutputFormat”-值可以是“统一”,“表”,“时间表”,或“细胞”只有。
当输入数组是一个高大的时间表和“OutputFormat”是“时间表”,指定的函数必须返回一个在第一维与输入相同大小的数组。指定“OutputFormat”作为“表”当输入函数为约简函数时,如的意思是.
的意思是
有关更多信息,请参见高大的数组.
使用注意事项和限制:
函数处理输入,函数,必须是不变的。
而函数句柄可以输入varfun它们本身不能作为入口点函数的输入。指定函数在用于代码生成的代码中。有关更多信息,请参见代码生成的函数句柄限制(MATLAB编码器).
所有名称-值参数的值必须为常量。
的“ErrorHandler”代码生成不支持名称-值参数。金宝app
不支持可变大小的输入参数。金宝app
在生成的代码中,分组变量不能有重复的值。
的值不能指定“OutputFormat”作为“细胞”如果您指定“GroupingVariables”参数指定的每个变量,函数返回不同的数据类型“数据源”.
如果输入是时间表,并且您指定“GroupingVariables”,那么输出的总是一个不规则的时间表。
如果指定了组,而在编译时不知道组的数量,并且组的数量为0,那么在生成的代码中,输出中的空双变量的大小可能为1乘0。在MATLAB中,这些变量的大小为0 × 0。
rowfun|cellfun|structfun|arrayfun|findgroups|splitapply|groupsummary|convertvars|vartype
rowfun
cellfun
structfun
arrayfun
findgroups
splitapply
groupsummary
convertvars
vartype
Sie haben eine geänderte版本dieses Beispiels。Möchten Sie dieses Beispiel mit Ihren Änderungen öffnen?
你的身体和身体之间的联系MATLAB-Befehl
Führen Sie den Befehl durch Eingabe in das MATLAB-Befehlsfenster aus。web浏览器unterstützen keine MATLAB-Befehle。
选择一个网站,在可用的地方获得翻译的内容,并查看当地的活动和优惠。根据您所在的位置,我们建议您选择:.
您也可以从以下列表中选择一个网站:
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。
联系当地办事处