rowfun如何知道在表中引用变量

时间:2015-08-31 05:44:46

标签: matlab

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中存在名为xy的变量}?

编辑:我觉得我的上一个陈述一定不是真的,因为如果你做A = table(g, y, x),就不会得到相同的结果。

我仍然对rowfun如何使用实际上不使用调用环境中定义的任何变量的函数感到困惑。

1 个答案:

答案 0 :(得分:1)

除非您使用Name / Value参数InputVariables指定行(及其顺序),否则Matlab将简单地将第1列作为第一个输入,将第2列作为第二个输入等,忽略最终的分组列。

因此,为了提高代码的可读性和可维护性,我认为始终明确指定InputVariables是一种好习惯。