全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
9245 2
2007-11-29

load a%原光谱数据
x=mean(Matrix.data);%x:平均光谱
xc(1,:)=Matrix.data(1,:)-x;
for i=1:179
    xc(1+i,:)=Matrix.data(1+i,:)-x;  %xc:中心化后的矩阵
end
c=xc'*xc/179;%c:协方差 或者用c=cov(xc)计算
for i=1:180
    md2(i)=xc(i,:)*inv(c)*xc(i,:)';%马氏距离的平方
end
md=sqrt(md2);%马氏距离

想求马氏距离,修改了好多次都不对,不知道怎么回事?望知道的教教我。非常感谢。

a是光谱数据文件,似乎是到了inv(c)这不对的,老是提示成比例或者是同一数据,计算出来到的矩阵元素几乎是一个值。

谢谢了!

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2007-11-29 18:06:00

X=randn(100,3);

[mx, nx] = size(X);

M = sum(X, 1)/mx;              % centroid (mean)

Xc = X - M(ones(mx,1),:);      % subtract centroid of X

W = (Xc' * Xc)/(mx - 1);       % variance matrix

% The call to REAL here is only to remove ``numerical noise''.

D = real(sum((Xc / W) .* conj(Xc), 2));   % Mahalanobis distances

 

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2008-11-17 16:05:00

请问求马氏距离有没有什么条件,比如,要求在直角坐标系下求,谢谢了

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群