MATLAB: 均值(X(Y == y, :));

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

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

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

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

解包后,这一行可能如下所示:

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

因此,如您所见,Y==y 只是用于查找 X 的一个子集,在该子集上取平均值。

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