楼主: Alliex
849 0

2011-02-14 09:52:21 [推广有奖]

  • 0关注
  • 0粉丝

学前班

40%

还不是VIP/贵宾

-

威望
0
论坛币
10 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
70 点
帖子
1
精华
0
在线时间
0 小时
注册时间
2011-2-14
最后登录
2015-12-7

楼主
Alliex 发表于 2011-2-14 09:58:56 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
用matlab求解最短路编码:function l=getA(a,z)
%l表示从z点出发的最短路距离,z属于1,2 ,3, ...n
%a表示邻接矩阵
len=length(a);%长度
X=zeros(1,len);%标示一个有len个零的X矩阵
dis=inf*ones(1,len);%最短距离的矩阵
X(z)=1;%出生点的标示
dis(z)=0;%给起点赋初始值
m1=[1];
m2=ones(1,len)
d=ones(len,len)
%2
k1=a(1,:);%选取矩阵的第一行
k2=find(k1>0&k1<inf);%找到不为0和inf数值的位置
k3=k1(k2);%找到相应的值
k4=min(k3);%相应值的最小值
k5=find(k1==k4);%找到最小值的位置
k6=k5(1);%选取其中的一个
X(k6)=1;%对其进行标示
dis(k6)=k4;%标示距离值
m1=[1 k6]
%3
t=1%循环标识
while t>0
    x1=find(X==1);%找已标示节点的位置
    x2=find(X==0);%找到没有标示节点的位置
    xn=[];
    for i=1:length(x2)%对没有标示的节点进行循环
        xn1=[];
        for j=1:length(x1)
            xn2=dis(x1(j))+a(x1(j),x2(i));%求初始节点到各个节点的距离
            xn1=[xn1 xn2];%把所求距离放入矩阵
        end
        xn3=min(xn1);%找出各距离中的最短路径
        xn=[xn xn3];
    end
    [xnn1 xnn2] =min(xn);%xnn1标示最短路径的值;xnn2标示它在xn里的位置
    xnn3=x2(xnn2);%找到最小值的节点位置
    X(xnn3)=1;%进行标示
    dis(xnn3)=xnn1;%找到距离
    if k6<xnn3      
        m1=[m1 xnn3];
        m=m1(find(dis(m1)==xnn1-a(xnn3,m1)))
        b=length(m)
      
        
        if b>=2
            c=1:b-1
            
           m=m(c)
         d(c,xnn3)=m(c)
       end
    end
    %40
    t1=sum(X);
    if t1==len
        t=0;%终止循环
    end
end
l=dis;
m2;
d;
二维码

扫码加我 拉你入群

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

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

关键词:function length MATLAB atlab matla

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

本版微信群
jg-xs1
拉您进交流群
GMT+8, 2026-1-11 21:04