怎样用matlab把相同的行向量合并 a = 1 2 3 4 5 6 7 8 9 1 2 3 1 2 3 1 2 3 7 8 9 4 5 6

a=[1 2 3;4 5 6;7 8 9;1 2 3;1 2 3;1 2 3;7 8 9;4 5 6]
2024年11月16日 23:53
有2个网友回答
网友(1):

a = [1 2 3;4 5 6;7 8 9;1 2 3;1 2 3;1 2 3;7 8 9;4 5 6];
b = sortrows(a); % 按行排序
c = diff(b); % 按行差分(相减)
d = sum(c,2); % 行求和(相同行减后为零)
L = d>0; % 求出不为零的行
L = [1;L];
r = b(logical(L),:)

网友(2):

clear all;clc;
a=[1 2 3;4 5 6;7 8 9;1 2 3;1 2 3;1 2 3;7 8 9;4 5 6];
for ii=2:8
if a(ii,:)==a(1,:);
a(ii,:)=NaN;
end
for jj=ii+1:8
if a(jj,:)==a(ii,:)
a(jj,:)=NaN;
end
end
end
for kk=1:8
if isnan(a(kk,:))==1
id(kk)=kk;
end
end
id(id==0)=[];
a(id,:)=[];
>> a

a =

1 2 3
4 5 6
7 8 9