【问题标题】:MATLAB: mean(X(Y == y, :));MATLAB:平均值(X(Y == y,:));
【发布时间】:2015-02-16 05:37:23
【问题描述】:

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

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

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

【问题讨论】:

  • Y==y 返回一个与 Y 或 y 大小相同的矩阵(取决于哪个是标量)。如果条目等于标量 y,则条目为 1,否则为 0。
  • 感谢您的回复。这与与 X 的组合有何关系。因为返回的实际矩阵不只是由 1 和 0 组成。

标签: matlab mean


【解决方案1】:

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

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 值的平均值。

【讨论】:

  • 你会赢的! :D 非常感谢,您的解释和代码示例一针见血。
猜你喜欢
  • 1970-01-01
  • 2021-01-17
  • 2021-12-05
  • 2023-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多