【发布时间】:2019-09-17 16:43:54
【问题描述】:
我在 MATLAB 中有一个矩阵 A,可以说是 RGB 值
A = [1 2 3;
4 5 6;
7 8 9]
还有一个矩阵 B 可以说
B = [1 2 3;
2 2 2]
现在我想从A 中删除B 的所有行。
结果是:
A* = [4 5 6;
7 8 9]
如何在 MATLAB 中有效地做到这一点?
【问题讨论】:
我在 MATLAB 中有一个矩阵 A,可以说是 RGB 值
A = [1 2 3;
4 5 6;
7 8 9]
还有一个矩阵 B 可以说
B = [1 2 3;
2 2 2]
现在我想从A 中删除B 的所有行。
结果是:
A* = [4 5 6;
7 8 9]
如何在 MATLAB 中有效地做到这一点?
【问题讨论】:
要查找 A 的哪些行存在于 B 中:
rowmatches = ismember(A,B,'rows')
上面给出了一个二进制向量,它是 A 中行数的长度。然后您可以要求 A 中不在 B 中的行的子集:
output = A(~rowmatches,:)
【讨论】: