liangye931114 发表于 2013-8-20 00:25

新手提问

matlab中c1=;和c1=;有什么区别啊,具体程序如下:

clc,cleara(1,2)=56;a(1,3)=35;a(1,4)=21;a(1,5)=51;a(1,6)=60;a(2,3)=21;a(2,4)=57;a(2,5)=78;a(2,6)=70;a(3,4)=36;a(3,5)=68;a(3,6)=68;a(4,5)=51;a(4,6)=61;a(5,6)=13;a(6,:)=0;a=a+a';c1=;L=length(c1);flag=1;while flag>0      flag=0;   for m=1:L-3      for n=m+2:L-1        if a(c1(m),c1(n))+a(c1(m+1),c1(n+1))<a(c1(m),c1(m+1))+a(c1(n),c1(n+1))           flag=1;           c1(m+1:n)=c1(n:-1:m+1);        end     end  endendsum1=0;for i=1:L-1   sum1=sum1+a(c1(i),c1(i+1));endcircle=c1;sum=sum1;c1=;%改变初始圈,该算法的最后一个顶点不动flag=1;while flag>0      flag=0;   for m=1:L-3      for n=m+2:L-1         if a(c1(m),c1(n))+a(c1(m+1),c1(n+1))<...              a(c1(m),c1(m+1))+a(c1(n),c1(n+1))           flag=1;           c1(m+1:n)=c1(n:-1:m+1);        end     end  endendsum1=0;for i=1:L-1   sum1=sum1+a(c1(i),c1(i+1));endif sum1<sum   sum=sum1;   circle=c1;endcircle,sum



madio 发表于 2013-8-20 09:17

1:4就是1 2 3 4的意思,放在向量的中间和放在后面当然产生的向量是不一样的

liangye931114 发表于 2013-8-20 09:50

请问有什么不一样呢?

liangye931114 发表于 2013-8-20 09:51

madio 发表于 2013-8-20 09:17 static/image/common/back.gif
1:4就是1 2 3 4的意思,放在向量的中间和放在后面当然产生的向量是不一样的

请问有什么不同呢?

净心、精心 发表于 2013-8-20 10:03

c1=;换成c1=6
c1=;换成c1=5
运行的结果是一样的

净心、精心 发表于 2013-8-20 10:10

c1=

c1 =

     5     1     2     3     4     6

cl=

cl =

     5     6     1     2     3     4



你程序里的这两个位置似乎写的有错误吧(c1=    c1=; )


净心、精心 发表于 2013-8-20 10:12

他们的不同就在于  在矩阵c1中的位置排序不同
页: [1]
查看完整版本: 新手提问