2016-09-25 11 views
1

私にはベクトルcx_vec A(2);があります。私は最初の要素を選び、その議論をしたいと思います。私はこれを行うにはアルマジロの機能を見つけていないので、私はarg(A.row(0))をしようとしていますが、argdouble complexと予想しています。 cx_vecからdouble complexarma::as_scalarと同様に前後に変換する方法はありますか?doublecx_vec要素をdouble complex armadilloにキャストするC++

キャストしようとしましたが動作しません。

#include <complex>の代わりに#include <complex.h>を使用していますが、明らかに後者には定義されていない定義が必要です(つまり、I)。

EDIT:@kirbyfan64sosのおかげで、私はそれがcomplex.hを使用するが、それでもstd::complex<double>からarma::cx_vecの要素を変換する方法を得ることができない良いアイデアではありません実現。

+0

'complex.h' =' complex'を。後者はC++ 11複合型であり、前者はC11用であり、技術的に全く異なる。あなたは 'complex'を使うべきです。 – refi64

+0

@ kirbyfan64sosありがとう、私は 'complex'に変更しましたが、' 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

関連する問題