matlab输入错误怎么修改,matlab 一个错误 怎么修改
问题描述: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.55
问题描述:
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
1个回答
分类:
综合
2014-11-29
问题解答:
我来补答
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就不会是一个数字了,具体你的要求我不大明了,要改的话可以考虑把这个判断语句改一改.就帮你到这了
再问: 其实a3(m,k)=hang
if length(hang)>1&max(s1)~=0
hang=hang(1);
end
当时怕hang不为一个数 所以才有上面的代码
然而当hang 不满足上面的式子的时候 是不是s1中的所有元素已经全部置为0了呢
请教高手
到底该怎么修改才能达到将s1中所有元素 逐渐放入a3 然后s1中元素 逐渐变为0
再答: 首先第一个问题。
反例:当length(hang)=1且max(s1)=1时,它不满足这个式子,故s1中并非所有元素置0。故式子不对,建议不要第一个判断条件,即改成max(s1)~=0,这样就对了。原因自己思考思考
至于第二个问题,你是说这?
if length(hang)==1&max(d)~=0
k=k+1;
a3(m,k)=hang;
s1(hang)=0;
end
这是对的。先把前面的好好改改再试试吧
展开全文阅读
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)