数学中国

 找回密码
 注册
搜索
热搜: 活动 交友 discuz
查看: 3994|回复: 2

matlab高手帮我看一下这个程序怎么改 别人运行出来 我运行不出啊

[复制链接]
发表于 2014-11-21 20:33 | 显示全部楼层 |阅读模式
M=inf;

a(1,1)=0;a(1,36)=10.3;a(1,37)=5.9;a(1,38)=11.2; a(1,50)=6.0;

a(2,2)=0;a(2,50)=9.2; a(2,5)=8.3;a(2,3)=4.8;

a(3,3)=0;a(3,39)=8.2; a(3,38)=7.9;

a(4,4)=0;a(4,39)=12.7; a(4,8)=20.4;

a(5,5)=0;a(5,6)=9.7; a(5,39)=11.3; a(5,48)=11.4;

a(6,6)=0;a(6,7)=7.3;a(6,47)=11.8; a(6,48)=9.5;

a(7,7)=0;a(7,47)=14.5; a(7,40)=7.2; a(7,39)=15.1;

a(8,8)=0;a(8,40)=8.0;  

a(9,9)=0;a(9,40)=7.8; a(9,41)=5.6;

a(10,10)=0;a(10,41)=10.8;

a(11,11)=0;a(11,42)=6.8; a(11,45)=13.2; a(11,40)=14.2;

a(12,12)=0;a(12,43)=10.2; a(12,42)=7.8;a(12,41)=12.2;

a(13,13)=0;a(13,45)=9.8;a(13,44)=16.4;a(13,42)=8.6; a(13,14)=8.6;

a(14,14)=0;a(14,43)=9.9; a(14,15)=15.0;

a(15,15)=0;a(15,44)=8.8;

a(16,16)=0;a(16,17)=6.8;a(16,44)=11.8;

a(17,17)=0;a(17,22)=6.7; a(17,46)=9.8;

a(18,18)=0;a(18,46)=9.2; a(18,45)=8.2; a(18,44)=8.2;

a(19,19)=0;a(19,20)=9.3; a(19,45)=8.1; a(19,47)=7.2;

a(20,20)=0;a(20,21)=7.9;a(20,25)=6.5; a(20,47)=5.5;

a(21,21)=0;a(21,23)=9.1;a(21,25)=7.8; a(21,46)=4.1;

a(22,22)=0;a(22,23)=10.0; a(22,46)=10.1;

a(23,23)=0;a(23,24)=8.9; a(23,49)=7.9;

a(24,24)=0;a(24,27)=18.8; a(24,49)=13.2;

a(25,25)=0;a(25,49)=8.8; a(25,48)=12.0;

a(26,26)=0;a(26,27)=7.8; a(26,49)=10.5; a(26,51)=10.5;

a(27,27)=0;a(27,28)=7.9;

a(28,28)=0;a(28,52)=8.3; a(28,51)=12.1;

a(29,29)=0;a(29,52)=7.2; a(29,51)=15.2; a(29,53)=7.9;

a(30,30)=0;a(30,32)=10.3; a(30,52)=7.7;

a(31,31)=0;a(31,33)=7.3;a(31,32)=8.1; a(31,53)=9.2;

a(32,32)=0;a(32,33)=19;a(32,35)=14.9;

a(33,33)=0;a(33,35)=20.3; a(33,36)=7.4;

a(34,34)=0;a(34,35)=8.2; a(34,36)=11.5; a(34,37)=17.6;

a(35,35)=0;

a(36,36)=0;a(36,53)=8.8;a(36,37)=12.2;

a(37,37)=0;a(37,38)=11.0;

a(38,38)=0;a(38,50)=11.5;

a(39,39)=0; a(41,41)=0;

a(42,42)=0;

a(43,43)=0;

a(44,44)=0;a(44,45)=15.8;

a(45,45)=0;

a(46,46)=0;

a(47,47)=0;

a(48,48)=0;a(48,49)=14.2; a(48,50)=19.8;

a(49,49)=0;

a(50,50)=0;a(50,53)=12.9;a(50,51)=10.1;

a(51,51)=0;

a(52,52)=0;

a(53,53)=0;

% 用1、2 、3……35表示35个村?用36、37……53表示各乡镇。其中50表示的是县政府。

b=a+a';b(find(b==0))=M;

for i=1:53

    b(i,i)=0;

end

[m n]=size(b);

k=1;

for i=1:m

    for j=1:n

        if  (b(i,j)==0)||(b(i,j)==inf)

        else

              x1(k)=i;

              y(k)=j;

              z(k)=b(i,j);

              k=k+1;

        end

    end

end

Q=[x1;y;z]';

k=0;

d=zeros(1,n);

for i=1:m

    for j=1:n

     if (b(i,j)==0)||(b(i,j)==inf)

     else  

         d(i)=d(i)+1;

         x2(i)=i;

     end

    end

end
k=1;

t=mod(d,2);

for i=1:m

    if t(i)==1

        x3(k)=i;

        k=k+1;

    end

end

[m n]=size(x3);

for i=1:n

for j=1:n

     E(i,j)=b(x3(i),x3(j));

end

end

k=1;

[D,path]=floyd(b);

for i=1:n

    for j=1:n

        if i==j

        else     

     [L,R]=router(D,path,x3(i),x3(j));

              x4(k)=x3(i);

              y4(k)=x3(j);

              z41(k)=max(L();

              z4(k)=150-z41(k);

              k=k+1;

        end

        end

end

Y1=[x4;y4;z41]';

Y=[x4;y4;z4]';

nMM=grMaxMatch(Y);

for i=1:13

  A(i,=Y1(nMM(i),;

  end

for i=1:13

     j=1;

     k=2;

     disp('需要加的边为?')

[l,r]=router(D,path,A(i,j),A(i,k));

r

l

end

e=hujuzhen(b);
f=[2 3 4.8;10 41 10.8;11 42 6.8;12 43 10.2;43 14 9.9;18 44 8.2;19 45 8.1;22 17 6.7;24 49 13.2;49

48 14.2;26 49 10.5;27 28 7.9;29 52 7.2;31 35 7.3;35 36 7.4;34 35 8.2];

e=[e;f];

E=[e(:,1) e(:,2)];

[eu,cEu]=grIsEulerian(E);

if eu==1

    disp('找到了最短路');

    [m n]=size(cEu);

    shortrouter=zeros(m,3);

    for i=1:m

        shortrouter(i,:)=e(cEu(i),:);

        juli=sum(shortrouter(:,3));

    end

    juli

[m,n]=size(shortrouter);

t=0;

for i=2:m

   if shortrouter(i,1)==shortrouter(i-1,2)

   else

     t=shortrouter(i,1);

     shortrouter(i,1)=shortrouter(i,2);

     shortrouter(i,2)=t;

   end

   end

zx=[shortrouter(1,1)  shortrouter(:,2)']';

[m,n]=size(zx);

n=sqrt(m);

n=floor(n);

t=[0];

k=1;

g=1;

l=n;

j=2;

while j<=m-1

for i=k:l

     x1=g;

     t=[t x1];

     j=j+1;

if j>m-1

break

end

end

g=g+1;

k=l;
l=l+n-1;

end

t=[t g]';

v=[n/2];

for i=1:n

    x=1:n;

    v=[v x];

    end

     j=m-n*n-1;

     if j>0

     x=1:j-1;

      end

     vl=[v x n/2]';

     Q=[t vl zx];

     c1=[1:107]';

     c2=[2:108]';

     c3=shortrouter(:,3);

     C=[c1 c2 c3];

     grPlot(Q,C,'g','%d','');

     title('\bf最短路径为?');

else

    disp('没有最短路');

end

load data

v=[x -y];

grPlot(v,shortrouter,'g','%d','');

title('\bf最短路径为?');
发表于 2014-11-21 21:25 | 显示全部楼层
可能无法运行了,缺了几个函数
发表于 2014-12-29 22:42 | 显示全部楼层
换一个版本试试?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|数学中国 ( 京ICP备05040119号 )

GMT+8, 2025-6-19 23:54 , Processed in 0.087474 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表