最近在使用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; }