2016-09-25 48 views
1

我有一個向量cx_vec A(2);。我想選擇第一個元素並獲得它的參數。我發現在犰狳沒有功能做到這一點,所以我試圖做arg(A.row(0))arg預計double complex。有沒有什麼辦法可以將cx_vec來回轉換爲double complex類似於arma::as_scalar對於double將cx_vec元素轉換爲複雜的犰狳C++

我試過鑄造它,但它不起作用。

請注意我使用的是#include <complex.h>而不是#include <complex>,因爲我需要它的一些明顯不在後者中的定義(即I)。

編輯:感謝@kirbyfan64sos我意識到,是不使用complex.h一個好主意,但仍然不能得到的方式的arma::cx_vec一個元件到std::complex<double>轉換。

+0

'complex.h' ='complex';後者是C++ 11複雜類型,前者是C11,它在技術上完全不同。你應該使用'複雜'。 – refi64

+0

@ kirbyfan64sos謝謝,我已經改變爲'複雜',但如何從'cx_vec'的元素中獲得'std :: complex '? – nopeva

回答

2

這應該做的伎倆:

arma::cx_vec A(2); 

// ... fill A with stuff ... 

double x = std::arg(A(0)); 
+0

@感謝您指出我遇到的問題,因爲通常我會用'A.row(0)'來代替。 – nopeva