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
请问错在哪里啊
我把它换成这种的
j=13;
for n =1:j-1
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 16:10 发表
我把它换成这种的
j=13;
for n =1:j-1
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));
...
eight正解.若要好看一些,可稍作如下修改:
================================
[y,m,n] = unique(x(:,1:3),'rows');
k = max(n); %%% 可统一用k标记元素不相同的行数.
y = [y,zeros(k,1)];
for i = 1:k
y(i,4) = sum(x(i==n,4));
end
y