如何将矩阵<double>转换为矩阵<float>?

How can I convert matrix<double> to Matrix<float>?

我想计算如下:Matrix<float> * Matrix<double>

Matrix<float> 有大约 6M*3 个元素,我如何将 Matrix<double> 转换为 Matrix<float> 以便得到 Matrix<float> 结果。

这是将双精度数组转换为浮点数组的方法,然后您只需将矩阵转换为数组,反之亦然

public static float[][] Convert(double[][] mtx)
{
    var floatMtx = new float[mtx.Length][];
    for (int i = 0; i < mtx.Length; i++)
    {
        floatMtx[i] = new float[mtx[i].Length];
        for (int j = 0; j < mtx[i].Length; j++)
            floatMtx[i][j] = (float)mtx[i][j];
    }
    return floatMtx;
}
Or:

public static float[][] Convert(double[][] mtx)
{
    return mtx.Select(i => i.Select(j => (float)j).ToArray()).ToArray();
}

您可以使用 Map 函数将双精度矩阵参数转换为浮点矩阵:

Matrix<double> m1 = Matrix<double>.Build.Random(6000000,3);
Matrix<float> m2 = m1.Map(x => (float)x);

或者

Matrix<float> m2 = m1.Map(Convert.ToSingle);