从documentation,我们看到以下示例:
g = gallery('integerdata',3,[15,1],1);
x = gallery('uniformdata',[15,1],9);
y = gallery('uniformdata',[15,1],2);
A = table(g,x,y)
func = @(x, y) (x - y);
B = rowfun(func,A,...
'GroupingVariable','g',...
'OutputVariableName','MeanDiff')
当函数func
应用于A
中的rowfun
时,它如何知道A
中存在名为x
和y
的变量}?
编辑:我觉得我的上一个陈述一定不是真的,因为如果你做A = table(g, y, x)
,就不会得到相同的结果。
我仍然对rowfun
如何使用实际上不使用调用环境中定义的任何变量的函数感到困惑。
答案 0 :(得分:1)
除非您使用Name / Value参数InputVariables
指定行(及其顺序),否则Matlab将简单地将第1列作为第一个输入,将第2列作为第二个输入等,忽略最终的分组列。
因此,为了提高代码的可读性和可维护性,我认为始终明确指定InputVariables
是一种好习惯。