matlab 一个错误 怎么修改clc,cleara=[3 21 55 44 70 83 117 99 610 214 017 314 612 910 127 142 166 1811 1715 1219 922 521 027 915 1915 1420 1721 1324 2025 1628 185 1217 1625 79 209 1530 12];a1=[1.501.802.551.200.851.303.202.301.401.501.102.701.8
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/25 11:37:04
matlab 一个错误 怎么修改clc,cleara=[3 21 55 44 70 83 117 99 610 214 017 314 612 910 127 142 166 1811 1715 1219 922 521 027 915 1915 1420 1721 1324 2025 1628 185 1217 1625 79 209 1530 12];a1=[1.501.802.551.200.851.303.202.301.401.501.102.701.8
matlab 一个错误 怎么修改
clc,clear
a=[3 2
1 5
5 4
4 7
0 8
3 11
7 9
9 6
10 2
14 0
17 3
14 6
12 9
10 12
7 14
2 16
6 18
11 17
15 12
19 9
22 5
21 0
27 9
15 19
15 14
20 17
21 13
24 20
25 16
28 18
5 12
17 16
25 7
9 20
9 15
30 12];
a1=[1.50
1.80
2.55
1.20
0.85
1.30
3.20
2.30
1.40
1.50
1.10
2.70
1.80
2.80
0.60
1.50
0.80
1.50
0.80
1.40
1.20
1.80
1.40
1.60
2.60
1.00
2.00
1.00
2.10
1.20
1.90
1.30
3.20
1.20
2.50
1.30];%a1为各个站点的垃圾量
a2=[];%a2中的aij 为第i个节点到第j个节点两者垃圾重量之和
for n=1:36
a2(n,1)=a1(n);
end
for i=1:36
for j=2:36
a2(i,j)=a1(i)+a1(j);
end
end
a2;
x=a(:,1);
y=a(:,2);
plot(x,y,'*')
grid on
set(gca,'xTick',(0:30))
set(gca,'yTick',(0:20))
for i=1:36
s1(i)=a(i,1)+a(i,2);
end
s1
for m=1:20
hang=find(s1==max(s1));%找到距离最远的点的下标
if length(hang)>1&max(s1)~=0
hang=hang(1);
end
%从最远点开始拉垃圾 然后寻找下一个距离最远点最近的 并且在它左下方的点
k=1;
a3(1,1)=hang;%用a3来放已近找到的点
s1(hang)=0;%将已经用过的点在s1中置为0
d=zeros(1,36);
t=a1(hang);
for n=1:35
x=a(hang,1);
y=a(hang,2);
for i=1:36
if a(i,1)6
continue;
else
if length(hang)==1&max(d)~=0
k=k+1;
a3(m,k)=hang;
s1(hang)=0;
end
end
end
end
a3
matlab 一个错误 怎么修改clc,cleara=[3 21 55 44 70 83 117 99 610 214 017 314 612 910 127 142 166 1811 1715 1219 922 521 027 915 1915 1420 1721 1324 2025 1628 185 1217 1625 79 209 1530 12];a1=[1.501.802.551.200.851.303.202.301.401.501.102.701.8
Subscripted assignment dimension mismatch.
Error in baidu (line 101)
a3(1,1)=hang;%用a3来放已近找到的点
是说这个错误?其实就是维数不对,hang可能不是一个数字,可能是一个矩阵.因为你的代码下面这一句:
if length(hang)>1&max(s1)~=0
hang=hang(1);
end
%从最远点开始拉垃圾 然后寻找下一个距离最远点最近的 并且在它左下方的点
k=1;
a3(1,1)=hang;%用a3来放已近找到的点
你给hang赋值为hang(1)是有条件的,条件不满足的时候hang就不是一个数字而是一个矩阵,事实上你输出s1就会发现,max(s1)==0,这样hang就不会是一个数字了,具体你的要求我不大明了,要改的话可以考虑把这个判断语句改一改.就帮你到这了