主要内容

varfun

将函数应用于表或时间表变量

描述

例子

B= varfun (函数一个应用函数函数分别给表或时间表的每个变量一个并以表或时间表的形式返回结果B

这个函数函数必须接受一个输入参数,并在每次调用时返回具有相同行数的数组。的输出参数中的变量,B{:,我},等于func({:,我})

如果一个是一个时间表函数然后,在行组上聚合数据varfun中每组行的第一行时间一个对应的行时间B。返回B作为没有行时间的表,指定“OutputFormat”作为“表”

例子

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 = varfun(func,A)
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表格中每个变量的平均值。

定义一个包含数值变量的表。

一个=表([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 = @mean;

函数使用现有的MATLAB®函数来定义操作。

将函数应用于表中的所有变量一个

B = varfun(func,A)
B =1×2表mean_Var1 mean_Var2  _________ _________ - 0.188 - 0.162

B是包含每个变量的平均值的表。若要返回数值向量而不是表,可以使用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的}

定义匿名函数来查找输入的平均值。

Func = @mean;

函数使用现有的MATLAB®函数来定义操作。

将该函数应用于定义的每组数据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表示表中条目的数量一个在那一组中。

创建包含示例数据的时间表。时间表的行时间也定义了组。

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 ___________ __________ 2016年1月1日0.71 0.23年2月1日-2016年2.05 0.12年2月1日-2016年0.35 -0.18年3月1日-2016年0.82年0.23年4月1日1.57 0.41年4月1日-2016年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

输入参数

全部折叠

函数,指定为函数句柄。您可以在文件中定义该函数,也可以将其定义为匿名函数。如果函数对应于多个函数文件(即if)函数表示一组重载函数),MATLAB®根据输入参数的类确定要调用哪个函数。

使用“OutputFormat”、“细胞”名称-值对参数,如果函数函数接受一个输入参数,并在每次调用时返回具有不同行数的数组。否则,函数必须返回具有相同行数的数组。

例子:Func = @(x) x.^2;计算输入的每个元素的平方。

输入表格,指定为表格或时间表。

名称-值参数

指定可选的参数对为Name1 = Value1,…,以=家,在那里名字是参数名和吗价值是对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来名字在报价。

例子:“数据源”,2中的第二个变量一个作为输入函数

的变量选择说明符一个传递给函数,指定为由“数据源”一个正整数,正整数的向量,字符串数组,字符向量,字符向量的单元数组,模式标量、逻辑向量或函数句柄。

如果你指定“数据源”作为函数句柄,它必须返回一个逻辑标量,并且varfun只传入变量一个函数返回1真正的)。

中的一个或多个变量一个定义行组,指定为由逗号分隔的对组成的“GroupingVariables”一个正整数,正整数的向量,字符串数组,字符向量,字符向量的单元数组,模式标量,或逻辑向量。

的价值“GroupingVariables”指定哪些表变量是分组变量,而不是它们的数据类型。分组变量可以是数字,也可以是数据类型分类calendarDurationdatetime持续时间逻辑,或字符串

一个具有相同分组变量值的组属于同一组。varfun适用于函数的每个变量中的每一组行一个,而不是每个变量。

如果任何分组变量包含S或缺失值(如NaTS、未定义的分类值或缺失的字符串),则相应的行不属于任何组,并从输出中排除。

行标签可以是分组变量。中的一个或多个变量可以单独对行标签进行分组一个,或者行标签和变量一起。

  • 如果一个是一个表,那么标签就是行名。

  • 如果一个是一个时间表,然后标签是行时间。

输出,B,输入的每一组行对应一行,一个

  • 如果你指定“OutputFormat”、“制服”“OutputFormat”、“细胞”,则输出具有对应于输入表变量的列函数被应用于。

  • 如果你指定“OutputFormat”、“表”“OutputFormat”、“时间表”,则输出有:

    • 变量对应于输入表中的变量函数被应用于。

    • 与分组变量对应的变量。

    • 一个新变量,GroupCount,其值是输入的行数一个在每一组中。

的格式B,指定为由“OutputFormat”或者是值“统一”“表”“时间表”,或“细胞”

“表”

varfun返回一个表,其中的每个变量对应一个变量一个(或指定的每个变量)“数据源”)。对于分组计算,B,也包含分组变量。

“表”中的不同变量返回不同大小或数据类型的值一个。然而,对于未分组计算,函数每次调用时必须返回具有相同行数的数组。对于分组计算,函数每次为给定组调用时必须返回具有相同行数的值。

如果一个是一个表,那么这是默认的输出格式。

“时间表”

varfun返回一个时间表,其中的每个变量对应一个变量一个(或指定的每个变量)“数据源”)。对于分组计算,B还包含分组变量。

varfun的行乘B从行乘以一个。如果行乘以赋值给B在使用?执行的计算上下文中没有意义函数,然后将输出格式指定为“OutputFormat”、“表”

如果一个是一个时间表,那么这是默认的输出格式。

“统一”

varfun将这些值连接成一个向量。函数每次调用时必须返回具有相同数据类型的标量。

“细胞”

varfun返回B作为单元格数组。“细胞”允许您使用返回不同大小或数据类型的值的函数。

调用if的函数函数失败,指定为由“ErrorHandler”还有一个函数句柄。定义此函数,以便它重新抛出错误或返回函数的有效输出函数

MATLAB用两个输入参数调用指定的错误处理函数:

  • 包含以下字段的结构:

    标识符

    错误的标识符。

    消息

    错误消息文本。

    指数

    发生错误的变量的索引。

    名字

    发生错误的变量的名称。

  • 函数的输入参数集合函数在错误发生的时候。

例如,

函数[A, B] = errorFunc(S, varvarin) warning(S.)标识符,S.message) A = NaN;B = NaN;

输出参数

全部折叠

输出表,作为表或时间表返回。B可以存储元数据,如描述、变量单元、变量名和行名。的属性部分了解更多信息表格时间表

扩展功能

版本历史

在R2013b中引入