我正在寻找类似的东西:
fmat A = randu<fmat>(4,5);
float **a = A.to_array(); // Return matrix as float**
有人知道如何在Armadillo
中做到这一点吗?
答案 0 :(得分:6)
没有返回指针数组的函数。您可以使用memptr()
method
float *a = A.memptr();
您还可以使用colptr()
method获取指向任何矩阵列的指针。我不确定为什么你可能需要一个指针数组,但你可以像这样构建一个(未编译和未经测试的代码):
std::vector<float *> av;
av.reserve(A.n_cols);
for (unsigned int i = 0; i < A.n_cols; ++i)
av.push_back() = A.colptr(i);
float **a = &av[0]; // a remains valid while av is in scope
请注意,Armadillo将数据存储在column-major order。