有没有办法有效地比较两个矩阵,我在想像
same = abs((A-B)) = 0...
将一个矩阵的值减去另一个矩阵,如果它们的结果是0,它们是相同的,还有isequal()
函数,比较两个矩阵最好的是什么?
答案 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.