varfun

应用功能表或时间表变量

描述

= varfun(FUNC一种应用功能FUNC分别对表或时间表的每个变量一种并返回表或时间表的结果

功能FUNC必须采取一个输入参数,并与每个被调用时相同的行数的返回数组。该一世在输出参数变量第,双},等于FUNC(A {:,I})

如果一种是一个时间表,并FUNC聚集数据超过行组,然后varfun从在每一组行分配第一行时间一种在相应的行时间。回来因为没有排次表,指定'输出格式''表'

= varfun(FUNC一种名称,值应用功能FUNC分别对表或时间表的每个变量一种与由一个或多个指定的附加选项名称,值对参数。

例如,您可以指定传递给函数的变量。

例子

全部收缩

定义并应用逐元素函数表的变量,以方的所有元素。

定义包含数值变量的表。

A =表([0.71; -2.05; -0.35; -0.82; 1.57],[0.23; 0.12; -0.18; 0.23; 0.41])
A =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

的变量有基于功能和名称从变量名一种

计算平均每个变量的在5×2表。

定义包含数值变量的表。

A =表([0.71; -2.05; -0.35; -0.82; 1.57],[0.23; 0.12; -0.18; 0.23; 0.41])
A =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;

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

应用功能表的所有变量一种

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

是含有选自每个变量的平均值的表。要返回一个数字矢量,而不是一个表,你可以使用B = varfun(FUNC,A, 'OUTPUTFORMAT', '均匀')

计算的变量的组间的装置在一个表中,一种,并在表中返回他们为行,

创建其中一个变量定义组的表。

A =表({'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])
A =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 { 'TEST1'} 1.57 0.41

定义匿名函数来找到一个输入的平均值。

FUNC = @mean;

FUNC使用现有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

含有一种叫做变量GroupCount指示从表条目的数量一种在该组。

创建包含样本数据的时间表。时间表的行时间也定义组。

DT =日期时间(2016,1,1)+天([0 1 1 2 3 3])';A =时间表(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'})
A =6×2时间表dt x y ___________ _____ _____ 01-Jan-2016 0.71 0.23 02-Jan-2016 -2.05 0.12 02-Jan-2016 -0.35 -0.18 03-Jan-2016 -0.82 0.23 04-Jan-2016 1.57 0.41 04-Jan-2016 0.09 0.02

计算在时间表的变量组明智的手段。varfun回报作为一个时间表,因为一种是的时间表。当指定行次为分组变量,则不能指定任何变量作为另一个分组变量。

B = varfun(@均值,A,'GroupingVariables''DT'
B =4×3时间表DT GroupCount mean_x mean_y ___________ __________ ______ ______ 01-JAN-2016 1 0.71 0.23 02-JAN-2016 2 -1.2 -0.03 03-JAN-2016 1 -0.82 0.23 04-JAN-2016 2 0.83 0.215

输入参数

全部收缩

功能,指定为函数句柄。您可以在文件或匿名函数定义的功能。如果FUNC对应于一个以上的功能的文件(即,如果FUNC代表一组重载函数),MATLAB®该功能确定调用基于类的输入参数。

使用'OUTPUTFORMAT', '单元'名称 - 值对的参数,如果函数FUNC采取一个输入参数,并返回阵列,每次被调用时的不同数目的行。除此以外,FUNC必须以相同的行数返回数组。

例:FUNC = @(X)X ^ 2。计算的输入中的每个元素的平方。

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

名称 - 值对参数

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

例:'InputVariables',2仅使用在所述第二可变一种作为输入到FUNC

说明符的选择变量一种传递给FUNC,指定为逗号分隔的一对组成的'InputVariables'和一个正整数,正整数,字符向量,特征向量的单元阵列中,字符串数组,逻辑载体或功能句柄的向量。

如果您指定'InputVariables'作为一个功能手柄,那么它必须返回一个逻辑标量,和varfun通过只在变量一种当函数返回1真正)。

在一个或多个变量一种定义行组,指定为逗号分隔的一对组成的'GroupingVariables'和一个正整数,正整数,字符向量,特征向量的单元阵列中,字符串数组,或逻辑矢量的矢量。

的价值'GroupingVariables'指定哪个表变量分组变量,而不是他们的数据类型。分组变量可以是数字,或具有数据类型明确的calendarDuration约会时间持续时间合乎逻辑, 要么

在行一种具有相同分组的变量值属于同一组。varfun适用FUNC内的每一个变量的每一组行一种的,而不是对每个整个可变。

如果任何分组变量包含为NaNS或丢失的值(如的NaTS,未定义分类值,或丢失的字符串),则对应的行不属于任何组,并从输出被排除在外。

行标签可以分组变量。您可以在排组标签独自一人,在一个或多个变量一种,或行标签和变量在一起。

  • 如果一种是一个表,然后将标签行名称。

  • 如果一种是一个时间表,那么标签是个行时间。

输出,,对于每个组一行在您指定'OUTPUTFORMAT', '均匀'要么'OUTPUTFORMAT', '单元'。当您指定'OUTPUTFORMAT', '表'要么'OUTPUTFORMAT', '时间表'时,输出从尺寸FUNC确定有多少行对应于每个组。

格式,指定为逗号分隔的一对组成的'输出格式'并且或者价值'制服''表''时间表', 要么'细胞'

'表'

varfun返回与一个可变的表中的每个变量一种(或者每个变量指定与'InputVariables')。对于分组计算,,还包含分组变量。

'表'允许您使用功能在不同的变量不同尺寸或数据类型的返回值一种。然而,对于未分组计算,FUNC必须在每次调用时相同的行数返回数组。对于分组计算,FUNC必须在每次被调用给定组的时间相同的行数的返回值。

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

'时间表'

varfun返回与一个变量的时间表在每个可变一种(或者每个变量指定与'InputVariables')。对于分组计算,还包含分组变量。

varfun创建的行时间从排次一种。如果分配给该行时间执行使用不计算的上下文中有意义FUNC,然后指定输出格式为'OUTPUTFORMAT', '表'

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

'制服'

varfun串接的值到载体中。FUNC必须在每次调用时会返回一个标有相同的数据类型。

'细胞'

varfun回报作为一个单元阵列。'细胞'让您使用的功能,不同的尺寸或数据类型的返回值。

要调用的函数,如果FUNC出现故障时,指定为逗号分隔的一对组成的'的ErrorHandler'和功能手柄。定义此功能,以便它重新抛出错误或返回功能有效输出FUNC

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

  • 这些字段的结构:

    识别码

    错误标识。

    信息

    错误消息的文本。

    指数

    对于发生错误的变量指标。

    名称

    对于发生错误的变量名。

  • 该组输入参数的功能FUNC在错误的时间。

例如,

功能[A,B] = errorFunc(S,varargin)警告(S.identifier,S.message)A = NaN的;B = NaN的;

输出参数

全部收缩

输出表,返回表或时间表。可存储元数据,例如描述,可变单元,变量名,和行的名称。欲了解更多信息,请参阅的属性部分要么时间表

扩展功能

介绍了在R2013b