Matrix fsharp中的矩阵与向量乘法

Matrix fsharp中的矩阵与向量乘法,matrix,vector,f#,Matrix,Vector,F#,我试图用F#做一个函数来计算向量和矩阵的乘积,但我不太明白为什么我的函数不起作用 这是我的密码: static member MatVecProduct (A : Matrix) (v : Vector) : Vector = let mutable b = new Vector(A.M_Rows) let MatrixArr = A.ToArray() let VecArray = v.ToArray() for i in 0..A.M

我试图用F#做一个函数来计算向量和矩阵的乘积,但我不太明白为什么我的函数不起作用

这是我的密码:

  static member MatVecProduct (A : Matrix) (v : Vector) : Vector =

     let mutable b = new Vector(A.M_Rows)
     let MatrixArr = A.ToArray()
     let VecArray = v.ToArray()
     
     for i in 0..A.M_Rows do 
        for j in 0..A.N_Cols do  
            b.[i] <- MatrixArr.[i, j] * VecArray.[i]
     b 
静态成员MatVecProduct(A:矩阵)(v:向量):向量=
设可变b=新向量(A.M_行)
设MatrixArr=A.ToArray()
设VecArray=v.ToArray()
对于0..A.M_行中的i
对于0..A.N.中的j
b、 [i]您可以在fsi中使用:

#r "nuget: MathNet.Numerics.FSharp, 4.15.0";;

open MathNet.Numerics.LinearAlgebra;;

let m = matrix [[ 1.0; 4.0; 7.0 ] ; [ 2.0; 5.0; 8.0 ] ; [ 3.0; 6.0; 9.0 ]];;

let v = vector [ 10.0; 20.0; 30.0 ] ;;

> m * v;;
val it : Vector<float> = seq [300.0; 360.0; 420.0]
#r“nuget:MathNet.Numerics.FSharp,4.15.0”;;
打开MathNet.Numerics.LinearAlgebra;;
设m=矩阵[[1.0;4.0;7.0];[2.0;5.0;8.0];[3.0;6.0;9.0];;
设v=vector[10.0;20.0;30.0];;
>m*v;;
val it:Vector=seq[300.0;360.0;420.0]

我们需要一些澄清以提供帮助。首先,您使用的是什么矩阵和向量库?第二,它在什么意义上“不起作用”?这会给你一些错误吗?还是意外的结果?嗨,Joakim,您可以添加要传递给函数的值。此外,您还可以添加预期的输出和得到的结果。如果您收到任何错误消息,您也可以添加这些消息,这可以帮助我们提供更好的解决方案。你也可以参考yeah,但是我们必须设计自己的函数,所以我们不允许使用已经存在的库:/澄清一下:我们正在使用由老师制作的库,以及适当的类来制作矩阵和向量。我不能真正地回顾我的结果,它只是没有通过测试文件中构造的一些测试。这些是你在提问时需要在问题中添加的细节。当然!下次我会记住的:D