文档帮助中心文档
对表或时间表变量应用函数
B = varfun(函数)
B = varfun(函数、名称、值)
例子
B= varfun (func,一个)应用函数func分别给每个变量的表或时间表一个并在表格或时间表中返回结果B.
B= varfun (func,一个)
B
func
一个
功能func必须接受一个输入参数,并在每次调用时返回具有相同行数的数组。的我输出参数中的第一个变量,B{:,我},等于func({:,我}).
我
B{:,我}
func({:,我})
如果一个是一个时间表func在多组行上聚合数据,然后瓦芬从每组行中指定第一行时间一个作为相应的行时间B.返回B作为没有行时间的表,指定“输出格式”作为“表”.
瓦芬
“输出格式”
“表”
B= varfun (func,一个,名称,值)应用函数func分别给每个变量的表或时间表一个具有一个或多个指定的附加选项名称,值对参数。
B= varfun (func,一个,名称,值)
名称,值
例如,可以指定要传递给函数的变量。
全部折叠
定义一个元素函数并将其应用于表的变量,以使所有元素平方。
定义一个包含数值变量的表。
一个=表([0.71;-2.05;-0.35;-0.82;1.57],[0.23;0.12;-0.18;0.23;0.41])
一个=5×2表Var1 Var2_uuuuuuuuuuuuuuuuuuuuuu0.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;
func使用现有的MATLAB®函数定义操作。
B =1×2表平均值1平均值2平均值0.188 0.162
B是一个包含每个变量平均值的表。要返回数字向量而不是表,可以使用B = varfun(函数,“OutputFormat”,“统一”).
B = varfun(函数,“OutputFormat”,“统一”)
计算表中变量的组均值,一个,并将它们作为表中的行返回,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{uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu{'test2'}-0.05 0.12{'test2'}-0.35-0.18{'test3'-0.82 0.23{'test1'-1.57 0.41
将函数应用于定义的每组数据Var1.
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表示表项的数目一个在这个群体。
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),...“变化无常”,{“x”“y”})
一个=6×2时刻表2016年1月-2016年1月-2016年1月-2016年1月-2016年1月-2016年1月-2016年1月-2016年1月-2016年1月-2016年1月-2016年1月-2016年1月-2016年1月
计算时间表中变量的分组平均值。瓦芬返回B作为一个时间表一个是一个时间表。当您将行时间指定为分组变量时,您不能将任何变量指定为另一个分组变量。
B=varfun(@mean,A,“GroupingVariables”,“dt”)
B =4×3的时间表2016年1月01日1 0.71 0.23 02-2016年1月2-1.2-0.03 03-2016年1月1-0.82 0.23 04-2016年1月2 0.83 0.215
函数,指定为函数句柄。您可以在文件中定义函数,也可以将其定义为匿名函数。如果func对应多个函数文件(即,iffunc表示一组重载函数)®根据输入参数的类确定要调用的函数。
使用“输出格式”,“单元格”如果函数func取一个输入参数,每次调用时返回具有不同行数的数组。否则,func必须返回具有相同行数的数组。
“输出格式”,“单元格”
例子:func=@(x)x.^2;计算输入的每个元素的平方。
输入表格,指定为表格或时间表。
指定可选的逗号分隔的对名称,值参数。名称参数名和价值是对应的值。名称必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家.
名称
价值
Name1, Value1,…,的家
“InputVariables”,2
输入变量
的变量的指定符一个要传递给func,指定为逗号分隔的对,由“数据源”以及正整数、正整数的向量、字符向量、字符向量的单元数组、字符串数组、逻辑向量或函数句柄。
“数据源”
如果您指定“数据源”作为函数句柄,那么它必须返回一个逻辑标量,并且瓦芬只传递变量一个函数返回的地方1(符合事实的).
1
符合事实的
分组变量
一个或多个变量一个定义行组,指定为逗号分隔对,由“GroupingVariables”以及正整数、正整数向量、字符向量、字符向量单元格数组、字符串数组或逻辑向量。
“GroupingVariables”
价值“GroupingVariables”指定哪些表变量是分组变量,而不是它们的数据类型。分组变量可以是数字或具有数据类型分类,calendarDuration,日期时间,持续时间,逻辑或一串.
分类
calendarDuration
日期时间
持续时间
逻辑
一串
行一个具有相同分组变量值的,属于同一组。瓦芬适用于func的每个变量内的每组行一个,而不是每个变量。
如果任何分组变量包含南s或缺少的值(例如NaTs、 未定义的分类值或缺少字符串),则相应的行不属于任何组,并且从输出中排除。
南
NaT
行标签可以对变量进行分组。中的一个或多个变量可以单独按行标签分组一个,或将行标签和变量放在一起。
如果一个是表,则标签是行名称。
如果一个是一个时间表,然后标签是行时间。
输出,B,为每个组指定一行“输出格式”,“统一”或“输出格式”,“单元格”.当你指定“OutputFormat”、“表”或“输出格式”,“时间表”的输出的大小func确定有多少行B对应于每组。
“输出格式”,“统一”
“OutputFormat”、“表”
“输出格式”,“时间表”
OutputFormat
“时间表”
“制服”
“细胞”
格式B,指定为逗号分隔的对,由“输出格式”或者这个值“制服”,“表”,“时间表”或“细胞”.
瓦芬返回一个表,其中每个变量对应一个变量一个或指定的每个变量“数据源”).分组计算,B,也包含分组变量。
“表”允许您使用一个函数,为中的不同变量返回不同大小或数据类型的值一个.然而,对于未分组计算,func每次调用它时,必须返回具有相同行数的数组。分组计算,func每次调用给定组时,必须返回具有相同行数的值。
如果一个是一个表,则这是默认的输出格式。
瓦芬中每个变量返回一个时间表一个或指定的每个变量“数据源”).分组计算,B还包含分组变量。
瓦芬创建的行时间B从行乘以一个.如果行时间赋给B在使用的计算上下文中没有意义吗func,然后指定输出格式为“OutputFormat”、“表”.
如果一个是一个时间表,那么这是默认的输出格式。
瓦芬将值连接到向量中。func每次调用时必须返回具有相同数据类型的标量。
瓦芬返回B作为一个单元数组。“细胞”允许您使用返回不同大小或数据类型的值的函数。
错误处理程序
函数调用iffunc失败,指定为逗号分隔对,由“ErrorHandler”和一个函数句柄。定义此函数,使其返回错误或函数的有效输出func.
“ErrorHandler”
MATLAB用两个输入参数调用指定的错误处理函数:
包含以下字段的结构:
标识符
错误的标识符。
消息
错误消息文本。
指数
发生错误的变量的索引。
发生错误的变量的名称。
要起作用的输入参数集func在发生错误的时候。
例如,
作用[A, B] = errorFunc(S, varargin)A = NaN;B =南;
输出表,作为表或时间表返回。B可以存储元数据,如描述、变量单元、变量名和行名。有关更多信息,请参见属性部分表格或时间表.
表格
时间表
这个函数支持长数组,但有以下金宝app限制:
的func输入必须总是返回一个大数组。
金宝app支持的名称-值对包括:
“数据源”-不能指定为函数句柄。
“输出格式”—取值为“制服”,“表”,“时间表”或“细胞”只有。
当输入数组是一个很高的时间表和“输出格式”是“时间表”,指定的函数必须返回与输入的第一维大小相同的数组。指定“输出格式”作为“表”当输入函数是一个约简函数时的意思是.
的意思是
有关更多信息,请参见高大的数组.
使用注意事项及限制:
函数句柄输入,func,必须是常数。
而函数句柄可以作为输入瓦芬它们本身不能作为入口点函数的输入。指定func在用于代码生成的代码中。有关更多信息,请参阅代码生成的函数句柄限制(MATLAB编码器).
所有名称值参数的值都必须是常量。
的“ErrorHandler”代码生成不支持名称值参数。金宝app
不支持可变大小的输入参数。金宝app
在生成的代码中,分组变量不能有重复的值。
的值不能指定“输出格式”作为“细胞”如果指定“GroupingVariables”的名称-值参数和函数为指定的每个变量返回不同的数据类型“数据源”.
如果输入是一个时间表并且您指定“GroupingVariables”,那么输出总是一个不规则的时间表。
如果您指定了组,并且在编译时组的数量未知,并且组的数量为零,那么输出中的空双变量在生成的代码中可能具有1 × 0的大小。在MATLAB中,这些变量的大小为0 × 0。
罗文|cellfun|structfun|arrayfun|findgroups|splitapply|组摘要|convertvars|vartype
罗文
cellfun
structfun
arrayfun
findgroups
splitapply
组摘要
convertvars
vartype
您有这个示例的修改版本。您想打开这个示例与您的编辑吗?
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。金宝app
选择一个网站以获取可用的翻译内容,并查看本地活动和优惠。根据您的位置,我们建议您选择:.
您还可以从以下列表中选择网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。
与当地办事处联系