首页 > 解决方案 > Octave - 比较不相等的矩阵并找到相等的元素

问题描述

我有两个不同维度的矩阵,我想比较它们的第一列中的任何元素是否匹配(并最终删除匹配的行)。循环只需要太多时间,所以我正在尝试矢量化版本,但我没有尝试过。任何帮助将非常感激!

标签: matrixcompareoctave

解决方案


这是我尝试的最后一件事,几乎得到了它,但是当我在两个矩阵中都有重复值时不起作用。

 [C,iC]=setdiff(A(:,1),B(:,1))
 [D,iD]=intersect(A(:,1),B(:,1))

 newA=A(iC,:)
 newBtemp=[A(iD,:);B]
 newB=sort(newBtemp)

但我想我现在终于明白了:

common=ismember(A(:,1),B(:,1))
temp=A(common,:)
A(common,:)=[]
newB=sort([temp;B])

推荐阅读