使用Eigen库:
我想创建一个4x4矩阵的向量
然后循环它以打印输出矩阵
问题是:在for循环中:matrices_vector.size()= 0虽然我用3个矩阵填充了matrices_vector
全部谢谢
//Main
vector<MatrixXd> matrices_vector;
MatrixXd temp(4,4);
for(int i= matrices_vector.size()-1; i=0; i--)
{
temp= matrices_vector.at(i-1) * matrices_vector.at(i);
matrices_vector.at(i-1)=temp;
matrices_vector.erase(matrices_vector.end(),matrices_vector.end()-1);
}
cout<< temp;
答案 0 :(得分:0)
这是不正确的,因为如果i
不是0,循环将永远不会执行。
for(int i= matrices_vector.size()-1; i=0; i--)
这应该是
for(int i= matrices_vector.size()-1; i > 0; i--)
此外,您应该在进入循环之前检查matrices_vector
是否为空,因为如果matrices_vector.size() - 1
为matrices_vector.empty()
,true
将产生无效值。
此外,由于你的循环检查对,你需要强制执行向量中至少有2个项目才能继续。