使用MathNet.Numerics库构造矩阵并初始化时,编译器报错“this方法没有任何重载采用"1"个参数”

最近在使用MathNet.Numerics库作一些数据处理工作,构造一个矩阵并初始化时,编译器报错“this方法没有任何重载采用"1"个参数”。

问题分析:

构造的矩阵的维度是N*1,采用的方法是:

Matrix<float> Control_mat = Matrix<float>.Build.Dense(ComConstants.sDim, 1);

然后,再直接给该矩阵的某些元素赋值,方法如下:

            for (int i = 0; i < ComConstants.sDim; i++)
            {
                Control_mat[i] = 1.0F;
            }

此处,心里一直想着该矩阵是一个列向量,就无意间忘记了该矩阵实际上是二维的。真是大意!

解决办法:

该矩阵的第二维也需要指出元素索引,代码修改如下就不会报错了:

            for (int i = 0; i < ComConstants.sDim; i++)
            {
                Control_mat[i, 0] = 1.0F;
            }

 

posted @ 2020-12-27 10:56  rainbow70626  阅读(369)  评论(0编辑  收藏  举报