Matlab 均值和方差维度不匹配
我需要计算训练集的均值和方差来进行异常检测,但不断得到维数不匹配误差Matlab 均值和方差维度不匹配,matlab,machine-learning,mean,variance,Matlab,Machine Learning,Mean,Variance,我需要计算训练集的均值和方差来进行异常检测,但不断得到维数不匹配误差 mean_train = 1/(num_train )* sum(Xtrain); var_train = 1/(num_train )* sum(Xtrain - mean_train).^2; 首先显示所有数据,因为我们无法重现您的错误。 我建议您接受此错误,因为: mean_train或num_train是一个向量,我们不能简单地用Xtrain乘以或减去它 但你的答案是: 只需使用内置的Matlab函数和。这使您可以
mean_train = 1/(num_train )* sum(Xtrain);
var_train = 1/(num_train )* sum(Xtrain - mean_train).^2;
首先显示所有数据,因为我们无法重现您的错误。 我建议您接受此错误,因为:
mean_train
或num_train
是一个向量,我们不能简单地用Xtrain
乘以或减去它
但你的答案是:
只需使用内置的Matlab函数和。这使您可以这样使用它:
mean(Xtrain)
避免使用辅助变量,如num\u train
我检查了您的代码,发现错误:
Xtrain
是一个100x2的阵列。使用sum
返回1x2数组!您可以在帮助中阅读此内容:
如果A是矩阵,那么sum(A)返回包含该和的行向量
每列的
因此,你的下一步行动:
mean_train = 1/(num_train )* sum(Xtrain);
返回1x2数组,matlab无法执行此操作:Xtrain-mean\u train
答案很简单:
像这样使用
sum
两次:sum(sum(Xtrain))
试着观察变量的大小并调试完整的代码可以在这里找到:代码的测试可以在这里找到:@JeandeToit我检查了你的代码,发现了错误。看我编辑的答案!