Eigen에서 상대 및 절대 허용 오차를 사용하여 벡터 (행렬)를 비교하는 함수가 있습니까? numpy.allclose? 벡터 중 하나가 0에 매우 가까우면 표준 isApprox이 실패합니다.Eigen에서 대략 벡터를 비교하는 방법?
답변
numpy.allclose를 구현하는 기본 제공 함수는 없지만 필요한 경우 실제로 쉽게 작성할 수 있습니다. 그러나, 나는 오히려 기준값으로 isMuchSmallerThan의 사용을 건의 할 것입니다 : 심판 문제에 대한 대표적인 비 제로
(a-b).isMuchSmallerThan(ref)
합니다.
편집 :
template<typename DerivedA, typename DerivedB>
bool allclose(const Eigen::DenseBase<DerivedA>& a,
const Eigen::DenseBase<DerivedB>& b,
const typename DerivedA::RealScalar& rtol
= Eigen::NumTraits<typename DerivedA::RealScalar>::dummy_precision(),
const typename DerivedA::RealScalar& atol
= Eigen::NumTraits<typename DerivedA::RealScalar>::epsilon())
{
return ((a.derived() - b.derived()).array().abs()
<= (atol + rtol * b.derived().array().abs())).all();
}
isMuchSmallerThan은 절대 비교에 사용될 수 있습니다. 즉, (ab) .isMuchSmallerThan (1.0, atol)은 np.allclose (a, b, 0.0, atol), 그래서 np.allclose를 모방하기 위해 우리는 다음과 같이해야만한다 : (ab) .isMuchSmallerThan (1.0, atol) || a.isApprox (b, rtol). 나 맞아? – DikobrAz
isMuchSmallerThan과 isApprox는 L2 행렬 표준을 기반으로하고 요소 별 비교가 아닙니다 (무한 표준). – ggael
도 나를 위해 작동하지 않는 isApprox 기능이 있습니다 : 여기 참조 allclose의 가능한 구현입니다. 난 단지 (기대 - 입술) .norm() < 몇 가지 작은 번호입니다.
- 1. Eigen에서 열 벡터를 열 벡터로 변환하는 방법?
- 2. 벡터를 비교하는 방법?
- 3. Eigen에서 벡터를 포함하는 행렬에 변형을 적용하는 짧은 방법?
- 4. 두 벡터를 비교하는 FDR
- 5. Vector3와 벡터를 비교하는 유니티 ==
- 6. Eigen에서 행렬을 확장하는 방법?
- 7. Eigen에서 Tensor를 바꾸는 방법
- 8. 부분 일치를위한 문자 벡터를 비교하는 방법 R
- 9. Eigen에서 벡터의 행렬에 벡터로 액세스
- 10. 간단하고 효과적인 방법으로 벡터를 비교하는 방법은 무엇입니까?
- 11. 두 벡터를 요소별로 비교하는 방법은 무엇입니까?
- 12. Eigen에서 순열 matix 만들기
- 13. Eigen에서 희소 행렬을 바꿔서
- 14. Eigen에서 희소 행렬 할당하기
- 15. JNI의 Eigen에서 Matrixxd def를 삭제하는 방법
- 16. Eigen에서 inverse와 determinant를 효율적으로 사용하는 방법?
- 17. n-gram을 사용하여 Solr과 대략 일치하는 방법?
- 18. 장고 대략 일치 등가물
- 19. 대략 일치하는 문자열
- 20. 그루비 findall은은 대략 /처럼
- 21. Eigen에서 블록 작업이 작동하지 않습니다.
- 22. Eigen에서 동적 행렬을 어떻게 반전합니까?
- 23. 개미 : 타임 스탬프를 비교하는 방법?
- 24. 스레드를 평등하게 비교하는 방법
- 25. STL 벡터를 비교하는 두 가지 방법의 차이점은 무엇입니까?
- 26. 논리 배열을 얻으려면 치수가 다른 두 벡터를 비교하는 방법은 무엇입니까?
- 27. 중고 벡터의 내용과 녹의 정적 벡터를 비교하는 방법은 무엇입니까?
- 28. 데이터 프레임과 복제본 및 벡터를 비교하는 방법은 무엇입니까?
- 29. 일반적인 방법으로 Clojure 벡터를 비교하는 표준 방법이 있습니까
- 30. 포인터의 벡터를 초기화하는 방법
참조 http://eigen.tuxfamily.org/dox-2.0/TutorialCore.html – user1929959