最近在编写朴素贝叶斯算法,在设计判决函数的时候
R{1,1}(i,j)=
-1/2*(test{1,j}(i,:)-ave{1,j}(1,:))*((test{1,j}(i,:)-ave{1,j}(1,:))')*inv(sigma{1,j}(:,:))-1/2*log(abs(det(sigma{1,j}(:,:))));
总是提示
MATLAB 赋值具有的非单一 rhs 维度多于非单一下标数,
一开始不知道是哪里出错也不懂这个提示是什么意思,后发现这是矩阵因维数不同导致不能相乘的缘故。
我们知道A(m*n)*B(n*m)=C(m*m),而B(n*m)不能与B(n*m)相乘。
在我的程序中(test{1,j}(i,:)-ave{1,j}(1,:))是(1*6)的,其转置矩阵为(6*1),