二维数组 - 需要一个嵌套的数组初始值设定项。 C#
2D array - a nested array initializer is expected. C#
我正在使用 MathNet.Numerics 包进行矩阵计算。
对于矩阵声明和初始化,预期代码如下:
Matrix<double> A = DenseMatrix.OfArray(new double[,] {
{1,1,1,1},
{1,2,3,4},
{4,3,2,1}});
在我自己的代码中,我有三个一维数组 - xPointsSquared,
y点,
一.
我收到错误消息 - "a nested array initializer is expected" 尝试按以下方式初始化矩阵时,
Matrix<double> A = DenseMatrix.OfArray(new double[,] {
xPointsSquared,
yPoints,
one});
二维数组必须使用嵌套数组初始化器进行初始化。和初始化交错数组double[][]不一样。在第二种情况下,您所做的是初始化锯齿状数组,而不是初始化二维数组。如果你想用你的三个一维数组来初始化你的二维数组,你必须一个一个插入数组元素。
Matrix<double> A = DenseMatrix.OfArray(new double[,] {
{ xPointsSquared[0], xPointsSquared[1], xPointsSquared[2], xPointsSquared[3] },
{yPoints[0], yPoints[1], yPoints[2], yPoints[3],},
{one[0],one[1],one[2],one[3]}});
我对你的情况的建议是,在使用 double[] 作为 Matrix class 构造函数的输入之前,先让 for 循环将元素插入 double[]。
double[,] mat = new double[3,3600];
for(int i = 0; i < 3600;++i{
mat[0,i] = xPointsSquared[i];
mat[1,i] = yPoints[i];
mat[2,i] = one[i];
}
Matrix<double> A = DenseMatrix.OfArray(mat);
我建议改用更合适的构造函数,例如:
Matrix<double> A = CreateMatrix.DenseOfRowArrays(xPointsSquared, yPoints, one);
有关更多替代方案,请参阅文档中的 Creating Matrices and Vectors。
我正在使用 MathNet.Numerics 包进行矩阵计算。
对于矩阵声明和初始化,预期代码如下:
Matrix<double> A = DenseMatrix.OfArray(new double[,] {
{1,1,1,1},
{1,2,3,4},
{4,3,2,1}});
在我自己的代码中,我有三个一维数组 - xPointsSquared, y点, 一.
我收到错误消息 - "a nested array initializer is expected" 尝试按以下方式初始化矩阵时,
Matrix<double> A = DenseMatrix.OfArray(new double[,] {
xPointsSquared,
yPoints,
one});
二维数组必须使用嵌套数组初始化器进行初始化。和初始化交错数组double[][]不一样。在第二种情况下,您所做的是初始化锯齿状数组,而不是初始化二维数组。如果你想用你的三个一维数组来初始化你的二维数组,你必须一个一个插入数组元素。
Matrix<double> A = DenseMatrix.OfArray(new double[,] {
{ xPointsSquared[0], xPointsSquared[1], xPointsSquared[2], xPointsSquared[3] },
{yPoints[0], yPoints[1], yPoints[2], yPoints[3],},
{one[0],one[1],one[2],one[3]}});
我对你的情况的建议是,在使用 double[] 作为 Matrix class 构造函数的输入之前,先让 for 循环将元素插入 double[]。
double[,] mat = new double[3,3600];
for(int i = 0; i < 3600;++i{
mat[0,i] = xPointsSquared[i];
mat[1,i] = yPoints[i];
mat[2,i] = one[i];
}
Matrix<double> A = DenseMatrix.OfArray(mat);
我建议改用更合适的构造函数,例如:
Matrix<double> A = CreateMatrix.DenseOfRowArrays(xPointsSquared, yPoints, one);
有关更多替代方案,请参阅文档中的 Creating Matrices and Vectors。