我需要访问 cusp::complex 类型向量的实部和虚部,以便通过 mex 将其发送到 matlab 变量。如何分别访问类型向量的实部和虚部。
cusp::array1d<cusp::complex<double>,cusp::host_memory> x;
我目前正在制作两个 std::vectors 并循环遍历它。
std::vector<double> xreal(n);
std::vector<double> ximag(n);
for(int i=0;i<n;i++){
xreal[n]=x[i].real();
ximag[n]=x[i].imag();
}
然后使用推力将其转移到 matlab 变量中。
mxArray *T = mxCreateDoubleMatrix(n, 1, mxCOMPLEX);
double *tp_real = mxGetPr(T);
double *tp_imag = mxGetPi(T)
thrust::copy(xreal.begin(), xreal.end(), tp_real);
thrust::copy(ximag.begin(), ximag.end(), tp_imag);
plhs[0] = T;
我想知道如何使用推力访问复数数组的实部和虚部
cusp::array1d<cusp::complex<double>,cusp::host_memory> x;
通过 mxArray 的相应实部和虚部指针来传递它。直接,这样我就可以避免循环。