问题描述:

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

这是对的。先把前面的好好改改再试试吧

展开全文阅读

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐