检查矩阵的所有行在数值上是否相等的最有效方法是什么?最好寻找没有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;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句