均值和方差维度不匹配

时间:2016-01-22 06:44:27

标签: matlab machine-learning mean variance

我需要计算异常检测训练集的均值和方差,但不断得到尺寸不匹配误差。

mean_train = 1/(num_train )* sum(Xtrain);
var_train =  1/(num_train )* sum(Xtrain - mean_train).^2;

1 个答案:

答案 0 :(得分:0)

首先显示所有数据,因为我们无法重现您的错误。 我建议你因为这个错误: mean_trainnum_train是一个向量,然后我们不能简单地将其与Xtrain相乘或减去它。

但答案是: 只需使用内置的Matlab函数meanvar。这让你以这种方式使用它:

mean(Xtrain)

避免使用num_train等辅助变量。

我检查了你的代码,发现错误: Xtrain是一个100x2数组。并使用sum返回1x2数组!您可以在帮助中阅读此内容:

  

如果A是矩阵,则sum(A)返回包含总和的行向量   每列。

所以你的下一步行动:

mean_train = 1/(num_train )* sum(Xtrain);

返回1x2数组,matlab无法执行此操作:Xtrain - mean_train

答案很简单: 像这样使用sum两次:sum(sum(Xtrain))