肥猫大师 2017-12-02 07:46 采纳率: 100%
浏览 1734
已采纳

求助,为什么Eigen库中的SparseMatrix不能在自定义类中创建

问题非常简单,代码如下:

 typedef SparseMatrix<double> SpMat;

class MyMat
{
public:
    SpMat XX(3, 3); // 错误,这里总提示输入类型说明符
};

int main()
{
    SpMat YY(3, 3); //此处正常
}

因为工作需要用到Eigen库中的稀疏矩阵,发现在main中创建正常,然而在自定义类中创建失败,提示输入类型说明符,求指导怎么创建才是正常。
另外顺道请教两个问题:
1.

 SparseMatrix<double,rowmajor,int>

中的int代表什么意思;
2.想类似

 typedef Matrix< double, 3, 3>  Matrix3d 

来创建一个3*3的double类型SparseMatrix的别名要怎么写?
感谢不吝赐教!

  • 写回答

2条回答 默认 最新

  • qq_40663468 2020-04-14 09:19
    关注

    在类中使用该矩阵,当该动态矩阵作为类的成员时,不需要声明大小,写成SpMat XX;即可。
    然后在具体使用的时候初始化,如: XX= MatrixXf::Zero(3, 3);//设为3*3全零矩阵

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 我这模型写的不对吗?为什么lingo解出来的下面影子价格这一溜少一个变量
  • ¥50 树莓派安卓APK系统签名
  • ¥15 maple软件,用solve求反函数出现rootof,怎么办?
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波