MATLAB:mean(X(Y == y,:));

时间:2015-02-15 20:43:38

标签: matlab mean

查看一些与多元高斯分布相关的MATLAB代码,我遇到了这一行:

params.means(k, :) = mean(X(Y == y, :));

查看MATLAB文档http://www.mathworks.com/help/matlab/ref/mean.html,我的假设是它计算第一维(列)中矩阵X的平均值。我不知道的是后面的括号。这是条件概率(其中Y = y)?有人能指点我解释一下吗?

1 个答案:

答案 0 :(得分:2)

解压缩,此单行可能如下所示:

row_indices = find(Y==y);
new_X = X(row_indices,:);
params.means(k,:) = mean(new_X);

因此,正如您所看到的,Y==y只是用于查找X的子集,并在其中采用均值。

鉴于你说这是用于计算多元高斯分布,我敢打赌X和Y是成对的数据集。我敢打赌,代码在不同的值k上循环(使用变量y)。因此,它会发现所有Y等于y,然后计算与X值相对应的Y值的平均值。