Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/142.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 行叉积本征值_C++_Eigen - Fatal编程技术网

C++ 行叉积本征值

C++ 行叉积本征值,c++,eigen,C++,Eigen,我试图在一个Eigen::MatrixXd dir的每一行与Eigen::MatrixXd v0v2的对应行之间进行叉积,并将结果保存在另一个Eigen::MatrixXd pvec中 pvec的初始化:Eigen::MatrixXd pvec(v0v2.rows(),3) 我尝试过这种肮脏的方法: (大小i=0;i

我试图在一个
Eigen::MatrixXd dir
的每一行与
Eigen::MatrixXd v0v2
的对应行之间进行叉积,并将结果保存在另一个
Eigen::MatrixXd pvec

pvec的初始化:
Eigen::MatrixXd pvec(v0v2.rows(),3)

我尝试过这种肮脏的方法:

(大小i=0;i{ pvec.行(i)=方向行(i).交叉(v0v2.行(i)); }

我得到这个错误:
这个方法只适用于特定大小的向量

我想这可能是因为列主/行主问题,所以我添加了
.transpose()
,但这也没有帮助。 我总是可以做一些更脏的个人跨产品元素的事情,比如:

Vec3交叉积(const Vec3&v)const
{返回Vec3(y*v.z-z*v.y,z*v.x-x*v.z,x*v.y-y*v.x);}
但我想用本征方法。
任何帮助都会很好

编译时必须知道
.cross
的参数大小为3。
尝试将矩阵声明为
Eigen::Matrix dir(N,3),等等。

您也可以使用缩写
Eigen::MatrixX3d dir(N,3)。找到了答案。谢谢你的回答!我还需要在循环中这样做吗?此外,我在函数外声明矩阵,并通过引用矩阵调用函数。它仍然给我同样的错误。@RickM。你有没有想过?你最后做了什么?循环的
?xkcd一如既往地相关,