查看一些与多元高斯分布相关的MATLAB代码,我遇到了这一行:
params.means(k, :) = mean(X(Y == y, :));
查看MATLAB文档http://www.mathworks.com/help/matlab/ref/mean.html,我的假设是它计算第一维(列)中矩阵X的平均值。我不知道的是后面的括号。这是条件概率(其中Y = y)?有人能指点我解释一下吗?
答案 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
值的平均值。