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
)。因此,它找到所有等于 y
的 Y
,然后计算与这些 Y
值相对应的 X
值的平均值。
查看一些与多元高斯分布相关的 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
)。因此,它找到所有等于 y
的 Y
,然后计算与这些 Y
值相对应的 X
值的平均值。