当前位置:  开发笔记 > 编程语言 > 正文

如何检查Eigen :: Matrix4f是否接近单位矩阵?

如何解决《如何检查Eigen::Matrix4f是否接近单位矩阵?》经验,为你挑选了1个好方法。

是否有一个很好的做法来检查我的结果Eigen :: Matrix4f是否几乎是同一性?由于浮点错误,我不会在某些时候只得到零和一些.

一种强力方法是检查矩阵中的每个值,如果它在某个EPSILON之间并且如果只有其中一个失败,则它不是单位矩阵.有更好的解决方案吗?



1> Ilya Popov..:

首先,你必须定义它们应该"接近"的意义.根据您的具体任务,可以有许多不同的亲密度定义.其中最常用的是:

norm( A - I ) < eps

norm一些矩阵规范在哪里.最常见的是2范数,1范数,inf范数和Frobenius范数.

你的方法也是可以的.它等同于上面的max-norm(where norm(A) = max abs Aij)方法.它可以在Eigen中使用:

(A - Matrix4f::Identity()).cwiseAbs().max() < eps;

更新:实际上,在Eigen中有一种特殊方法可以检查:isIdentity.你给它门限值:

A.isIdentity(eps)

推荐阅读
coco2冰冰
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有