0

当我尝试查看雅可比矩阵的列和行中的值时,我收到类似CXX0059 的错误:错误:左操作数是 VS2010 中的类而不是函数名。

例如; 我有一个矩阵

MatrixXf j = MatrixXf::Zero(2,mList.size());
...
...
   for(...)
   {
     j(0, col) += (-mList[i]->mLength*sin(angle));
     j(1, col) += ( mList[i]->mLength*cos(angle));
   }

当我调试这部分时,它无法观察变量 j(0,col)。我知道,也许它不是一个函数名,但它有一些价值。我的意思是,矩阵由 10 个单元组成,但我从 Visual Studio 得到的只是一个浮点值。

这是调试的sc:

调试屏幕

感谢您对观察每个单元格的值的任何帮助。

4

1 回答 1

1

类上重载的j(0, col)构造调用,调试器不会在本机代码中评估此类构造。要查看矩阵的内容,您应该在 的实例中找到指向数据的指针。最有可能的是,它将有一个指向数据数组的类型。默认情况下,它在调试器中显示为单个浮点值。但是您可以按照此处所述手动指定其大小以扩展数组,如下所示:operator()()MatrixXfMatrixXffloat*j.ptr,10

autoexp.dat您可以通过在文件中编写特殊的显示规则来进一步增强此方法。在此处查看综合教程。

于 2012-11-20T09:50:31.220 回答