将 cx_vec 元素转换为双复数犰狳 C++
cast cx_vec element to double complex armadillo c++
我有一个向量 cx_vec A(2);
。我想选择第一个元素并得到它的参数。我在犰狳中没有找到执行此操作的功能,因此我尝试执行 arg( A.row(0) )
但是 arg
期望 double complex
。有什么方法可以将 cx_vec
来回转换为 double complex
类似于 arma::as_scalar
对于 double
?
我试过投射但没用。
请注意我使用的是 #include <complex.h>
而不是 #include <complex>
因为我需要它的一些定义显然不在后者中(即 I
)。
编辑:感谢 @kirbyfan64sos
我意识到使用 complex.h
不是一个好主意,但仍然无法将 arma::cx_vec
的元素从 std::complex<double>
.
这应该可以解决问题:
arma::cx_vec A(2);
// ... fill A with stuff ...
double x = std::arg( A(0) );
我有一个向量 cx_vec A(2);
。我想选择第一个元素并得到它的参数。我在犰狳中没有找到执行此操作的功能,因此我尝试执行 arg( A.row(0) )
但是 arg
期望 double complex
。有什么方法可以将 cx_vec
来回转换为 double complex
类似于 arma::as_scalar
对于 double
?
我试过投射但没用。
请注意我使用的是 #include <complex.h>
而不是 #include <complex>
因为我需要它的一些定义显然不在后者中(即 I
)。
编辑:感谢 @kirbyfan64sos
我意识到使用 complex.h
不是一个好主意,但仍然无法将 arma::cx_vec
的元素从 std::complex<double>
.
这应该可以解决问题:
arma::cx_vec A(2);
// ... fill A with stuff ...
double x = std::arg( A(0) );