2017-06-13 70 views
0

我需要重現此Matlab的操作:矢量乘以本徵

r = U(:,ii)'*Es 

其中: U是(複雜)的矩陣和Es是(複雜)

最終的載體,我所得到的是標量復值r

現在,我試圖做與C++庫的本徵同樣的,我已經tryied這個:

complex<double> r = U.col(jj) * Es; 

complex<double> r = U.col(jj).transpose() * Es; 

,但沒有任何工程。有誰能夠幫助我?我怎樣才能重現相同的結果? 謝謝!

+0

'U.col(JJ).DOT(ES)'或'U.col(JJ).conj()點。 (Es)'(我不確定Matlab慣例是什麼) – chtz

回答

0

@chtz,謝謝。我測試過你的建議,並重現MATLAB所需的操作是:

U.col(jj).dot(Es) 
+1

以下工作也是如此:'複雜 r = U.col(jj).adjoint()* Es;' – ggael

+0

@ggael如果'U.col (jj).adjoint()* Es'工作,爲什麼'.transpose()* Es'工作? (除非JoJo使用的是Eigen的老版本 - 我其實沒有嘗試他的代碼......) – chtz

+1

@chtz'.transpose()* Es'編譯並且運行良好,它的版本也很老,所以我猜JoJo的意思是說在這種情況下結果是不正確的。 – ggael