a :: Matrix
a = [[2.0, 3.0, 4.0],
[5.0, 6.0, -1.0]]
b :: Matrix
b = [[1.0, 0.0],
[1.0, 1.0],
[0.0, -1.0]]
matrixProduct :: Matrix -> Matrix -> Matrix
matrixProduct m p = [[ scalarProduct r c | c <- column p] | r <- m]
scalarProduct :: Vector -> Vector -> Float
scalarProduct xs ys = sum [x*y | (x,y) <- zip xs ys]
column :: Matrix -> Matrix
column y = [ [z!!j | z <- y] | j <- [0 .. s] ]
where
s = length (head y) - 1
用Haskell计算矩阵
最新推荐文章于 2022-03-05 22:43:00 发布