两种矩阵的有效比较MATLAB

时间:2011-03-09 01:16:14

标签: matlab matrix comparison

有没有办法有效地比较两个矩阵,我在想像

same = abs((A-B)) = 0...
 将一个矩阵的值减去另一个矩阵,如果它们的结果是0,它们是相同的,还有isequal()函数,比较两个矩阵最好的是什么?

3 个答案:

答案 0 :(得分:3)

您可以执行isequal(A,B),如果为真,则返回1,如果为假,则返回0

答案 1 :(得分:3)

由于您正在处理浮点数,因此您可能不希望测试完全相等(取决于您的应用程序)。因此,您可以检查

norm(A - B)

足够小,比如说< 1e-9,这取决于你的申请。这是矩阵2范数,如果A - B是全零矩阵或接近零矩阵,它将接近于零。

答案 2 :(得分:2)

似乎ISEQUAL比减法后检查非零元素更快:

>> a = rand(100, 100);
>> b = a;
>> tic; for ii = 1:100000; any(any(a - b)); end; toc;
Elapsed time is 2.089838 seconds.
>> tic; for ii = 1:100000; isequal(a, b); end; toc;
Elapsed time is 1.201815 seconds.