作业帮 > 综合 > 作业

我的matlab程序似乎有些问题

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/10 06:24:48
我的matlab程序似乎有些问题
程序如下:
clc;
x=[10 52 -1 7 20 8 20 12 5 12 13 -4 -4 -5 0 5 0 2 7 10 18 19 22 11 26 28 30 34 36 27 36 38 44 40 46 42 51 55 45 58 64 70 62 60 56 50 62 60 65 1 4 2 -2 40 48 50 49 53 54];
y=[0 13 28 22 27 19 12 11 27 29 31 32 35 41 38 36 50 48 46 43 38 41 34 59 49 52 55 54 50 43 47 39 50 58 60 66 53 45 36 40 42 57 57 60 68 69 68 70 61 31 35 40 44 40 52 47 50 50 48];
r=zeros(59);
for p=1:59
for q=1:59
r(p,q)=sqrt((x(p)-x(q))^2+(y(p)-y(q))^2);
end
end
w=zeros(59);
w(1,2)=1;w(1,3)=1;w(3,4)=1;w(4,9)=1;w(9,10)=1;
w(4,5)=1;w(4,6)=1;w(6,7)=1;w(6,8)=1;w(3,11)=1;
w(3,50)=1;w(12,50)=1;w(50,12)=1;w(12,13)=1;w(12,15)=1;
w(50,51)=1;w(51,15)=1;w(51,16)=1;w(13,14)=1;w(14,15)=1;
w(15,52)=1;w(52,53)=1;w(52,16)=1;w(14,53)=1;w(16,51)=1;
w(53,18)=1;w(52,19)=1;w(16,20)=1;w(17,18)=1;w(18,19)=1;
w(19,20)=1;w(20,21)=1;w(3,11)=1;w(11,21)=1;w(21,22)=1;
w(22,25)=1;w(25,26)=1;w(26,27)=1;w(25,24)=1;w(26,28)=1;
w(28,29)=1;w(25,30)=1;w(30,31)=1;w(31,33)=1;w(33,55)=1;
w(55,37)=1;w(37,43)=1;w(33,34)=1;w(34,35)=1;w(35,36)=1;
w(43,44)=1;w(44,45)=1;w(45,46)=1;w(45,47)=1;w(47,48)=1;
w(44,49)=1;w(31,32)=1;w(55,57)=1;w(57,56)=1;w(37,58)=1;
w(58,59)=1;w(59,38)=1;w(57,58)=1;w(56,59)=1;w(23,32)=1;
w(32,54)=1;w(54,38)=1;w(54,39)=1;w(38,40)=1;w(39,40)=1;
w(40,41)=1;w(41,42)=1;w(39,2)=1;w(41,2)=1;
w=w+w';
w=w.*r;
w=w+((w==0)-eye(59))*1000;
w
path=zeros(59);
for k=1:59
for i=1:59
for j=1:59
if w(i,j)>w(i,k)+w(k,j)
w(i,j)=w(i,k)+w(k,j);
path(i,j)=k;
end
end
end
end
w,path
为什么前后两次输出的w会是不一样的结果?是哪里什么错误么?如果有应该怎么修改?谢谢!
一开始少了清除空间上一次保留的数据,用 clear all;
再问: clear all加在哪个位置?
再答: 程序开头,你的第二个w是在第一个w的基础上得到的,两次的 结果当然会不同
再问: 是我脑残了,谢啦~