熊猫 发表于 2007-2-28 14:41

请问这个错在哪里

x=[2003        8        6        0.4
2003        8        7        0.3
2003        8        11        -0.6
2003        8        16        -0.6
2003        8        17        0.6
2003        8        17        0.3
2003        8        17        0.2
2003        8        18        1.3
2003        8        18        0.7
2003        8        20        0.6
2003        8        21        0.6
2003        8        21        0.5
2003        8        21        4.6]

我想比较浅前3项如果相同的话就将最后一项相加并上移如
2003        8        16        -0.6
2003        8        17        0.6
2003        8        17        0.3
2003        8        17        0.2
变为
2003        8        16        -0.6
2003        8        17        1.1
j=13;
for n =1:12
   for m =n+1:j
       if((x(n,1)==x(m,1))&&(x(n,2)==x(m,2))&&(x(n,3)==x(m,3)))
         x(n,4)=abs(x(n,4))+abs(x(m,4));   
         j=j-1;
         x(m,:)=[];
       end
   end
end
请问错在哪里啊

风花雪月 发表于 2007-2-28 14:48

虽然一开始你的矩阵是12行,但是在这个过程中,由于删减,实际上到最后的时候矩阵并没有12行

所以造成下标溢出

ustb 发表于 2007-3-7 16:56

循环从最大到最小就不会出错。如 n=12:-1:1

gghhjj 发表于 2007-3-11 21:07

原帖由 ustb 于 2007-3-7 16:56 发表
循环从最大到最小就不会出错。如 n=12:-1:1

同意~
页: [1]
查看完整版本: 请问这个错在哪里