首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HMatrix矩阵双双积

HMatrix矩阵双双积
EN

Stack Overflow用户
提问于 2015-03-02 14:54:18
回答 1查看 87关注 0票数 0
代码语言:javascript
复制
f1 :: Mesh -> Matrix Double
f1 me = knx where
  hx :: Double
  (hx , _) = h me
  a, knx :: Matrix Double
  a = fromLists [[1,2], [3,4]] 
  knx = hx * a 
  -- knx = 2 * a

我不明白为什么在上面的函数中,变2工作,而乘以hx = 0.5则不工作。OTOH,将一个Matrix Double与一个函数外部的Double相乘,效果是应该的。

代码语言:javascript
复制
Couldn't match expected type ‘Matrix Double’
            with actual type ‘Double’
In the first argument of ‘(*)’, namely ‘hx’
In the expression: hx * a
Failed, modules loaded: none.

我真的很困惑。任何指点都欢迎!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-02 15:52:02

HMatrix中,scale :: Container c e => e -> c e -> c e做它在标签上说的事情(将c e中的e乘以第一个e)。下面是一些使用示例:https://hackage.haskell.org/package/hmatrix-0.16.1.4/docs/src/Data-Packed-Internal-Numeric.html

应该注意的是,scale x通过fromList考虑x为单例列表来构造容器类型。

如果至少将常见的算术运算重载,这样公式可能类似于它们的数学对应,这将是非常方便的。我不确定定义函数同义词(例如(.*) = scale )是个好主意,还是只会增加一层复杂性。有什么想法吗?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28812748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档