matlab怎么求两个矩阵中完全对应的行

img


如果a中某行与b中任意一行完全对应,就把a中这个行给删去,我这样为什么会报错呀,有没有什么方法能实现我这个思想呢

你这里删掉了行那后面索引的时候怎么够呢?

a=[1,2;3,4;7,9];
b=[3,4;3,4;5,9];
d = [];
for i = 1:3
    for j = 1:3
       if all(a(i,:)==b(j,:))
           d = [d, i];
       end 
    end
end
a(d,:)=[]

img

 a=[1,2;3,4;7,91];
 b=[3,4;3,4;5,91];
 n = size(a,1);
 i = 1;
while i < n
     for j=1:3
          if isequal(a(i,:),b(j,:))
                     a(i,:)=[];
                     n = n - 1;
          end   
     end
     i = i+1;
 end

有一个变量来记录,a的第n行于b的第m行相同,如果相同,就记录n,m为一个数对儿,最终aRow_bRow里每行记录就是两矩阵中,相同的行号对儿。


a=[1,2;3,4;7,9];
b=[3,4;3,4;5,9];
aRow_bRow=[];
for i=1:1:3
  for j=1:1:3
   if isequal(a(i,:),b(j,:))
     aRow_bRow=[aRow_bRow;i,j];
   end
  end
end

a=[1,2;3,4;7,9];
b=[3,4;3,4;5,9];
ia=ismember(a,b,'rows');
a(ia)=[];