作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Haskell 的住宿加早餐图书馆是https://wiki.haskell.org/Applications_and_libraries/Mathematics 中线性代数部分的第一个图书馆。 。所以,我正在尝试:
let a = Matrix.fromList [[1,2,3], [4,5,6], [7,8,9]]
let b = Matrix.fromList [[1], [2], [3]]
a * b
*** Exception: Matrix.times: `numRows a' and `numCols b' don't match.
什么?如果我将 [m x n] 矩阵乘以 [n x p] 矩阵,我应该得到 [m x p] 矩阵,而不是这个愚蠢的异常(exception)。好吧,也许库作者不知道哪里是左边,哪里是右边。
b * a
*** Exception: Ix{Int}.index: Index (2) out of range ((1,1))
哇啊啊?
最佳答案
我敢打赌你正在使用一个新的 GHC;结果, cabal 选择了老式的住宿加早餐旅馆。在我的机器上,它选择了版本0.1.2(尽管最新版本是0.4.3);这个版本似乎有一个 incorrect dimensions check in its multiplication function :
a `times` b
| numRows a /= numCols b = error "Matrix.times: `numRows a' and `numCols b' don't match."
| otherwise = fromList [ [ row i a `dotProd` col j b
| j <- [1..numCols b] ]
| i <- [1..numRows a] ]
该支票应该是 numCols a /= numRows b
。该检查在库的更高版本中已修复;但这些版本也(正确)指定 base
的上限排除新的 GHC。
因此,我怀疑您要么必须更新库才能使用新的 GHC,修补旧版本的库,要么使用更积极维护的库。我对hmatrix很满意在过去,请注意矩阵乘法拼写为 (<>)
,不是(*)
.
关于Haskell的民宿矩阵乘法错了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33926631/
我目前有一个表单,可以在数据库中创建一个项目,然后在下一步中,它允许用户为该列表上传多个图像,这两个部分都可以独立工作,但我需要能够从进入图像上传查询的第一页,以确定其对应的列表 这是允许用户上传多张
我是一名优秀的程序员,十分优秀!