我有一个计算旋转和平移矩阵的代码,如下所示:
matrix Matrix<double> rt = new Matrix<double>(3, 4);
if (positiveCount[0] > positiveCount[1])
{
rt = R[0].ConcateHorizontal(T[0].GetCol(2));
}
else
{
rt = R[1].ConcateVertical(T[1].GetCol(2));
} 我得到的错误如image中所示,

我检查了所有的矩阵和元素,大小都是匹配的。
有没有人经历过同样的错误?
发布于 2013-03-30 07:21:47
这个问题涉及到矩阵维数的适应性问题。
在else-part中:
rt = R[1].ConcateVertical(T[1].GetCol(2)); 错误,rt是3*4矩阵,R1是3*3,T1的第二列是3*1
因此,如果我们想水平地将T1.GetCol(2)加到R1上,我们将它粘贴到矩阵R上,得到一个3*4的矩阵。当我们将行/cols附加到另一个矩阵时,应该有一个大小匹配。
因此,它应该替换为:
rt = R[1].ConcateHorizontal(T[1].GetCol(2));https://stackoverflow.com/questions/15712573
复制相似问题