QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 22965|回复: 12
打印 上一主题 下一主题

求助--建模中MATLAB马氏距离计算--详细过程

[复制链接]
字体大小: 正常 放大
dukaibing        

11

主题

4

听众

110

积分

升级  5%

该用户从未签到

跳转到指定楼层
1#
发表于 2009-8-9 12:11 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
有以下数据:
6只Apf蠓虫的触长,翅膀数据
触长/mm1.141.181.21.261.281.3
翅长/mm1.781.961.86221.96
9只Af蠓虫触长,翅膀数据
触长/mm1.241.361.381.381.381.41.481.541.56
翅长/mm1.721.741.641.821.91.71.821.822.08

编程序实现求:两类蠓虫到另一类蠓虫总体的马氏距离
Apf=[1.14,1.78;1.18,1.96;1.20,1.86;1.26,2.00;1.28,2.00;1.30,1.96];
Af=[1.24,1.72;1.36,1.74;1.38,1.64;1.38,1.82;1.38,1.90;1.40,1.70;1.48,1.82;1.54,1.82;1.56,2.08];

d11=sqrt([mahal(Apf,Apf),mahal(Apf,Af),mahal(Af,Apf),mahal(Af,Af)])

得到结果:
Apf类到Apf类马氏距离/mm1.66661.71620.80250.85360.88981.4535   
Apf类到Af类马氏距离/mm3.40314.17343.14543.54343.31012.7175   
Af类到Apf类马氏距离/mm4.04726.44898.66855.59194.32498.10838.11499.63936.5871
Af类到Af类马氏距离/mm1.84420.57551.39650.5431.26340.93450.77831.55292.1296



我的问题是: 如:  Apf类到Apf类马氏距离    是怎样计算出来的?
   我知道有马氏距离计算公式:
那么具体的计算过程是怎样的呢?望知道这方面知识的高手能指点一下!   
最好能举例,指点一下具体的操作过程。
    感激不尽
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持2 反对反对0 微信微信
dukaibing        

11

主题

4

听众

110

积分

升级  5%

该用户从未签到

补充:如按照D2 = MAHAL(Y,X)来的话,令X,Y分别等于一个具体的矩阵,然后算其  该类样本的均值与协方差矩阵,然后进行计算。可以按照步骤进行吗?
回复

使用道具 举报

追梦者 实名认证       

13

主题

4

听众

594

积分

升级  98%

该用户从未签到

国际赛参赛者

新人进步奖

群组数模应用

群组LINGO

群组四川农业大学数学建模协会

群组重庆交通大学数学建模协会

群组Mathematica研究小组

本帖最后由 追梦者 于 2009-8-10 11:30 编辑

恩,我好像见过这样的题目不过是用神经网络做的;
如上述题目:
p=[1.14 1.18 1.2 1.26 1.28 1.3   1.24 1.36 1.38 1.38 1.38 1.4 1.48
    1.78 1.96 1.86 2 2 1.96 1.72 1.74 1.64 1.82 1.9 1.7 1.82 ];%两种昆虫的数值
%说的具体先,上面两种昆虫的数据你是这样写的
%Apf=[1.14,1.78;1.18,1.96;1.20,1.86;1.26,2.00;1.28,2.00;1.30,1.96];
%Af=[1.24,1.72;1.36,1.74;1.38,1.64;1.38,1.82;1.38,1.90;1.40,1.70;1.48,1.82;1.54,1.82;1.56,2.08];
%在神经网络中p=[1.14 1.18 1.2 1.26 1.28 1.3   1.24 1.36 1.38 1.38 1.38 1.4 1.48
%1.78 1.96 1.86 2 2 1.96 1.72 1.74 1.64 1.82 1.9 1.7 1.82 ]=[Apf',Af']注意要转制加上“ ' ”。因为神经网络中每次训练的向量是以p中每列向量作为训练向量的。
t=[ones(1,6),2*ones(9,1)];%前六个的昆虫我们设为第1类。后面九个昆虫我们设为第2类就是[1 1 1 1 1 1 2 2 2 2 2 2 2 2 2];
t=ind2vec(t);%将上面的t转化为0-1变量,1表示1在第一个,2表示1在第二个;转化后的t即为[1 1 1 1 1 1 0 0 0 0 0 0 0 0 0;0 0 0 0 0 0 1 1 1 1 1 1 1 1 1]
net=newlvq(minmax(p),11,[6/15  9/15]);%创建函数,minmax(p)表示p中每行的最大最小值,11表示中间层的神经元个数。[6/15  9/15]表示两类昆虫的占的比例。
net.trainparam.goal=0.001;%训练需要达到的目标的精度
net.trainparam.epochs=1000;%训练次数
net=train(net,p);%开始训练
假如我要判断u=[1.2 5.3 3.6;
                         1.45 5.6.3]三个昆虫
y=sim(net,u);
y=vec2ind(y);%将0-1变量转化为1,2。
%对了除此之外,假如说我有三类昆虫,我也可以设1,2,3;
不知解释的是否明了,O(∩_∩)O~有问题再向我发信息就行了,只要看到了一定回,不会的话,也会回的O(∩_∩)O~
已有 1 人评分体力 收起 理由
dukaibing + 10 原创内容,您能将您用神经网络做出来的内容 ...

总评分: 体力 + 10   查看全部评分

回复

使用道具 举报

追梦者 实名认证       

13

主题

4

听众

594

积分

升级  98%

该用户从未签到

国际赛参赛者

新人进步奖

群组数模应用

群组LINGO

群组四川农业大学数学建模协会

群组重庆交通大学数学建模协会

群组Mathematica研究小组

本帖最后由 追梦者 于 2009-8-9 18:58 编辑

恩,以前也做过马氏判别法,不过忘得差不多了,只有几个记得O(∩_∩)O~,不知能不能帮上忙
你写的求和符号,你应该知道他代表协方差矩阵。
%定义一个函数
function y=mashi(Apf,Af,x)
%Apf和Af的协方差矩阵
a=cov(Apf);
b=cov(Af);
%计算距离并判别,u是触长和翅膀的均值向量
u_Apf=[sum(Apf(1,:/size(Apf,2);sum(Apf(2,:/size(Apf,2)]
u_Af=[sum(Af(1,:/size(Af,2);sum(Af(2,:/size(Af,2)];
d1^2=(x-u_Apf)'*inv(a)*(x-u_Apf);
d1^2=(x-u_Af)'*inv(b)*(x-u_Af);
if d1^2<d1^2
y=1;
else
y=0;
end
__________________________________________________________________________________
%"data.m"
Apf=[1.14,1.78;1.18,1.96;1.20,1.86;1.26,2.00;1.28,2.00;1.30,1.96];
Af=[1.24,1.72;1.36,1.74;1.38,1.64;1.38,1.82;1.38,1.90;1.40,1.70;1.48,1.82;1.54,1.82;1.56,2.08];
x=[1.2 5.3 3.6;
      1.45 5.6.3]
__________________________________________________________________________________
%"main.m"
data;
y=mashi(Apf,Af,x);
————————————————————————————————————————————————————
得出结论。
在MATLAB中内置函数mahal大体意思就这样O(∩_∩)O~
已有 1 人评分体力 收起 理由
dukaibing + 10 原创内容

总评分: 体力 + 10   查看全部评分

回复

使用道具 举报

追梦者 实名认证       

13

主题

4

听众

594

积分

升级  98%

该用户从未签到

国际赛参赛者

新人进步奖

群组数模应用

群组LINGO

群组四川农业大学数学建模协会

群组重庆交通大学数学建模协会

群组Mathematica研究小组

恩,忘了提醒一下,上面的冒号“:”我是用中文打的。运行时要改下O(∩_∩)O~
回复

使用道具 举报

追梦者 实名认证       

13

主题

4

听众

594

积分

升级  98%

该用户从未签到

国际赛参赛者

新人进步奖

群组数模应用

群组LINGO

群组四川农业大学数学建模协会

群组重庆交通大学数学建模协会

群组Mathematica研究小组

回复

使用道具 举报

16

主题

21

听众

3372

积分

升级  45.73%

  • TA的每日心情
    开心
    2013-10-25 15:56
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    自我介绍
    活泼,爱交友

    发帖功臣 新人进步奖

    群组数学建模

    群组数学趣味、游戏、IQ等

    群组我行我数

    群组Mathematica研究小组

    群组LINGO

    回复

    使用道具 举报

    dukaibing        

    11

    主题

    4

    听众

    110

    积分

    升级  5%

    该用户从未签到

    3# 追梦者


    谢谢您的帮忙!您能将您用神经网络做出来的程序  注释一下  吗?    谢谢了
    回复

    使用道具 举报

    1

    主题

    2

    听众

    371

    积分

    升级  23.67%

  • TA的每日心情
    无聊
    2012-11-18 09:28
  • 签到天数: 62 天

    [LV.6]常住居民II

    自我介绍
    200 字节以内

    不支持自定义 Discuz! 代码

    群组西安交大数学建模

    回复

    使用道具 举报

    chenhuiyu     中国数模人才认证   

    3

    主题

    4

    听众

    170

    积分

    升级  35%

  • TA的每日心情
    开心
    2012-11-12 22:44
  • 签到天数: 22 天

    [LV.4]偶尔看看III

    2012挑战赛参赛者

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2025-5-29 10:44 , Processed in 0.840371 second(s), 102 queries .

    回顶部