This question already has answers here:
Closed 4 years ago.
finding matching rows in matrix
(4个答案)
检查矩阵中所有行的数值是否相等的最有效方法是什么?
最好找没有for循环的东西。

最佳答案

你可以这样说:所有行的所有组成部分都等于第一行吗?

allRowsEqual = all(all(bsxfun(@eq, A, A(1,:))));

另一方面,使用一个简单的for循环可能会更快,因为上面必须查看整个矩阵。。。
allRowsEqual = true;
for k = 1:size(A,1)
    if any(A(k,:)~=A(1,:))
        allRowsEqual = false;
        break;
    end
end

如果你想清楚一点,这一行基本上是这样写的:只有一行吗?
allRowsEqual = size(unique(A,'rows'),1)==1;

07-28 12:30