0
복잡한 매트릭스에 선택 기능 :아이겐 : 나는 <code>Eigen</code>에서 작성하려는이 MATLAB 코드가
[V_K,D_K] = eig(K);
d_k = diag(D_K);
ind_k = find(d_k > 1e-8);
d_k(ind_k) = d_k(ind_k).^(-1/2);
K_half = V_K*diag(d_k)*V_K';
지금까지 작성한 코드는 (마지막 부분은 this 예를 들어 다음과 같은 기준으로)한다 :이 (우선, 당신이 Eigen::MatrixXcf
에 std::sqrt(v)
을 적용 할 수 없습니다) 분명히 잘못된 것입니다,하지만 난 그것을 작성하는 방법을 알아낼하지 않았다
Eigen::EigenSolver<Eigen::MatrixXf> es (K,true);
Eigen::MatrixXcf v = es.eigenvalues();
v = (v.array()).select(1/std::sqrt(v),v);
. 나 좀 도와 줄 수있어? 당신이 연결의 예에서
감사합니다 순전히! 'unaryExpr'과의 차이점을 알려주시겠습니까? – justHelloWorld
각 값에 적용 할 함수를 직접 작성할 수 있습니다. 일반적으로 사용 가능한 경우 Eigens 함수를 사용하는 것이 더 좋습니다. 벡터화 및 표현 템플릿이 가능하기 때문입니다. –
설명 주셔서 감사합니다! 당신이 [이] (http://stackoverflow.com/questions/38327550/different-eigenvector-and-eigenvalues-in-eigen-and-matlab-could-generate-errors) 질문 좀 봐주실 수 있습니까? – justHelloWorld