如何解决如何向特征中的每一行添加一个向量?
我正在尝试向矩阵中的每一行添加一个向量,但出现错误。
代码如下:
MatrixXd shifted_cord = MatrixXd::Random(10,3);
Vector3d v = Vector3d(3.0,20.0,0.0);
//std::cout<<shifted_cord<<std::endl;
shifted_cord = shifted_cord.colwise()+v; //(10,3)
我需要移动所有行,在本例中为 10。
在 this 中做了同样的事情,但是当我尝试时,我遇到了错误。
错误:
Assertion `aLhs.rows() == aRhs.rows() && aLhs.cols() == aRhs.cols()' failed.
谁能帮我解决这个错误?
解决方法
如果你想添加到每一行,你需要写.rowwise()
并确保你添加的向量确实是一个行向量(要么将v
声明为RowVector3d
,或写 v.transpose()
。您也可以将 +=
运算符与 .rowwise()
表达式一起使用:
shifted_cord = shifted_cord.rowwise()+v.transpose();
// or
shifted_cord.rowwise()+=v.transpose();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。