【问题标题】:How to compare rows (one row to the other row) of two different matrices?如何比较两个不同矩阵的行(一行与另一行)?
【发布时间】:2015-10-13 13:05:02
【问题描述】:

我想比较两个不同矩阵的行并找出哪些行匹配。

例如:A= [1 2 3; 4 5 6; 7 8 9; 1 2 3]; B= [1 2 3; 4 5 8; 7 8 9; 7 7 7]

然后我想比较A的第一行和B的第一行,A的第二行和B的第二行等等。如果它们不匹配,它应该返回逻辑0或false,反之亦然.比方说,如果 C 是输出列向量,那么,
C = [ 1; 0; 1; 0]

有没有像ismember 这样的 MatLAB 函数。 ismember 的问题在于它不会逐行比较,而是比较 A 中的行是否存在于 B 中。

【问题讨论】:

  • 你可以直接和==比较,它只是返回一个逻辑数组。
  • @excaza 那么我将不得不使用all(C,2) 来获取列向量对吗?
  • 是的,test = all(A==B, 2); 这样的东西可以正常工作
  • @excaza 哦,是的。谢谢!

标签: matlab matrix


【解决方案1】:
N=size(A,1);
C=zeros(N,1);

for k=1:N

C(k)=isequal(A(k,:),B(k,:));

end

没有循环(excaza 的学分):

C=all(A==B,2);

【讨论】:

  • 非常感谢。虽然 excaza 在你之前提到过。
  • 是的,刚刚看到,我就让循环实现在我的回答中
  • @BillBokeey 无需编辑,这是一个简单的答案。
猜你喜欢
  • 2019-03-14
  • 2014-02-12
  • 1970-01-01
  • 2017-03-06
  • 2020-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多