numpy array[0,:] *= 1.23 的 MathNet 等价物是什么

What is the MathNet equivalent of numpy array[0,:] *= 1.23

我必须在 c# (MathNet) 中移植一些 python (numpy) 代码。 我可以写 python:

mtx = np.array([[0,1,2],[3,4,5]])
mtx[0,:] *= 1.23    #multiply all elements in row 0 by 1.23

如何在 MathNet 中执行此操作?是否有比以下更好(更快)的解决方案:

 Matrix<double> mtx = Matrix<double>.Build.Dense(2,3);
 //...
 for(int i = 0; i < mtx.ColumnCount; i++)
    mtx[0,i] *= 1.23;

?

有几种方法,肯定比 for 更干净。 从充满 1.

的矩阵开始
 Matrix<double> mtx = Matrix<double>.Build.Dense(2, 3, 1);
 
 mtx.SetRow(0, mtx.Row(0).Multiply(1.23));

 Console.WriteLine(mtx);

returns

DenseMatrix 2x3-Double

1,23 1,23 1,23

1 1 1

为了完整性:Math.NET Numerics 本身确实支持一种与您的 NumPy 示例有些接近的表示法。 C# 不支持它,但其他更强大的 .Net 语言如 F# 支持:

let mtx = matrix [[0.;1.;2.];[3.;4.;5.]]
mtx.[0,*] <- 1.23 * mtx.[0,*]