C++ 转换Eigen';将s矩阵转换为c数组,这样我就可以使用gsl了
我的大部分代码都使用Eigen,但我想使用来自GSL的Miser或Vegas monte-carlo积分。我需要将本征向量转换成双倍的c数组 最好的方法是什么C++ 转换Eigen';将s矩阵转换为c数组,这样我就可以使用gsl了,c++,pointers,eigen,arrays,C++,Pointers,Eigen,Arrays,我的大部分代码都使用Eigen,但我想使用来自GSL的Miser或Vegas monte-carlo积分。我需要将本征向量转换成双倍的c数组 最好的方法是什么 Matrix<double,3,1> --> c_array [] 矩阵-->c_数组[] 我以前和艾根一起工作过 通常,为了简单地访问内部阵列数据,您只需要: 如果希望迭代单个值以执行某些操作,则需要迭代每一行(.row(index))和列(.col(index)),具体取决于要在目标向量中设置的矩阵顺序 在您的特定
Matrix<double,3,1> --> c_array []
矩阵-->c_数组[]
我以前和艾根一起工作过
通常,为了简单地访问内部阵列数据,您只需要:
如果希望迭代单个值以执行某些操作,则需要迭代每一行(.row(index))和列(.col(index)),具体取决于要在目标向量中设置的矩阵顺序
在您的特定示例中,只需迭代行:
Matrix<double,3,1> --> c_array []
矩阵-->c_数组[]
您需要调用.col(0)。如果出现类似的需求
因此,您将得到如下结果(假设您希望使用三行单列矩阵):
vector3dv;
//将值添加到向量的操作。
对于(inti=0;我希望没有复制的东西。但是现在可以检查答案的顶部:)出于好奇,这是用于你的游戏机器人项目吗?如果是这样的话,你打算建立一个开源库吗?它将以什么语言连接?C++,呵呵,可惜没有玩游戏BOT。我用这个来做物理化学研究,写一个半经典传播子来模拟原子的运动。
Matrix<double,3,1> --> c_array []
Vector3d v;
// Operations to add values to the vector.
for (int i=0; i<v.rows(); ++i)
c_array[i] = v(i,0);