主要内容

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(函数)
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(函数)
B =1×2表mean_Var1 mean_Var2替-0.188 - 0.162

B是一个表,它包含每个变量的平均值。返回一个数值向量而不是一个表,您可以使用B = varfun(函数,“OutputFormat”,“统一”)

计算变量的group-wise意味着在一个表,一个,并返回表中的行,B

创建一个表,一个变量定义组。

({=表“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(函数,“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)+天([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 - 1月- 2016 0.71 0.23 02 - 1月- 2016年-2.05 - 0.12 02 - 1月- 2016年-0.35 - -0.18 03 - 1月- 2016年-0.82 - 0.23 04 - 2016年1月- 2016年1月1.57 - 0.41 04 - - 0.09 - 0.02

计算group-wise意味着变量的时间表。varfun返回B作为一个时间表,因为一个是一个时间表。当你指定行乘以作为分组变量,你不能任何变量指定为另一个分组变量。

B = varfun (@mean,“GroupingVariables”,“dt”)
B =4×3的时间表dt GroupCount mean_x mean_y ___________ __________交01 - 1月- 2016年1月1 0.71 - 0.23 02 - - 2016 2 -1.2 - -0.03 03 - 1月- 2016年1 1月-0.82 - 0.23 04 - - 2016 2 0.83 - 0.215

输入参数

全部折叠

函数,指定为一个函数处理。您可以定义的函数在一个文件或一个匿名函数。如果函数对应于多个函数文件(也就是说,如果函数代表一组重载函数),MATLAB®确定哪些函数来调用基于类的输入参数。

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

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

输入表,指定为一个表或一个时间表。

名称-值参数

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

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

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

说明符的选择变量一个要传递给函数,指定为逗号分隔两人组成的“数据源”一个正整数,向量的正整数,字符串数组,特征向量,单元阵列的特征向量,模式标量、逻辑向量,或一个函数处理。

如果您指定“数据源”作为处理函数,那么它必须返回一个逻辑标量和varfun通过变量一个在函数返回1(真正的)。

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

的价值“GroupingVariables”指定哪个表变量分组变量,不是他们的数据类型。一个分组变量可以是数字,或数据类型分类,calendarDuration,datetime,持续时间,逻辑,或字符串

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

如果任何分组变量包含值(如s或失踪NaT年代,未定义的分类值,字符串或失踪),那么相应的行不属于任何群体,并被排除在输出。

行标签可以分组变量。你可以组仅行标签,在一个或多个变量一个一起,或行标签和变量。

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

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

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

  • 如果您指定“OutputFormat”、“制服”“OutputFormat”、“细胞”,然后输出列对应于输入表变量函数被应用到。

  • 如果您指定“OutputFormat”、“表”“OutputFormat”、“时间表”,然后输出有:

    • 变量对应变量输入表函数被应用到。

    • 变量对应分组变量。

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

的格式B,指定为逗号分隔两人组成的“OutputFormat”和的值“汽车”,“表”,“时间表”,“统一”,或“细胞”

“汽车”(默认)(因为R2023a)

varfun返回一个输出的数据类型匹配输入的数据类型一个

“表”

varfun返回一个表为每个变量与一个变量一个每个变量(或指定“数据源”)。分组计算,B,还包含分组变量。

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

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

“时间表”

varfun返回一个时间表为每个变量与一个变量一个每个变量(或指定“数据源”)。分组计算,B还包含分组变量。

varfun创建的行乘以B的行乘以一个。如果行乘以分配B做没有意义的上下文中执行的计算使用吗函数,然后指定输出格式“OutputFormat”、“表”

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

“统一”

varfun将输出值连接到一个向量。函数必须返回一个标量,每次调用相同的数据类型。

“细胞”

varfun返回输出单元阵列。“细胞”允许您使用一个函数,返回值不同大小或数据类型。

如果要调用的函数函数失败,指定为逗号分隔组成的“ErrorHandler”和一个函数处理。定义这个函数,让它重新抛出错误或返回有效输出函数函数

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

  • 与这些字段的结构:

    标识符

    错误的标识符。

    消息

    错误消息文本。

    指数

    索引变量的错误发生。

    的名字

    变量名称的错误发生。

  • 输入参数的设置功能函数在错误的时间。

例如,

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

输出参数

全部折叠

输出表,返回一个表或一个时间表。B单位可以存储元数据描述等变量,变量名,行名称。有关更多信息,请参见属性的部分时间表

扩展功能

版本历史

介绍了R2013b

全部展开