加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在Ruby 1.9.3中,向量不能乘以另一个向量?

发布时间:2020-12-17 02:38:36 所属栏目:百科 来源:网络整理
导读:我在 Ruby中实现了基本的机器学习算法,1.9.3. 我尝试使用类Matrix和Vector作为算术.但是,当我试图将矢量乘以另一个矢量时,它说 “ExceptionForMatrix :: ErrOperationNotDefined:无法定义操作(*):Vector op Vector”. 但Ruby的文档,1.9,3 says: *(x) Mult
我在 Ruby中实现了基本的机器学习算法,1.9.3.

我尝试使用类Matrix和Vector作为算术.但是,当我试图将矢量乘以另一个矢量时,它说
“ExceptionForMatrix :: ErrOperationNotDefined:无法定义操作(*):Vector op Vector”.

但Ruby的文档,1.9,3 says:

*(x) Multiplies the vector by x,where x is a number or another vector.

我的代码和输出在这里:

> a = Vector[1,2,3]
=> Vector[1,3]
> b = Vector[1,3]
> a * b
ExceptionForMatrix::ErrOperationNotDefined: Operation(*) can't be defined: Vector op Vector

解决方法

尽管文档明确指出你可以将向量乘以另一个向量,但它是无意义的,而且,正如zisasign指出的那样,实现不允许它.

但是,您可以使用covector方法将任一矢量转换为单行矩阵,然后可以将其相乘以进行有意义的计算:

a = Vector[1,3]
b = Vector[10,100,1000]

a.covector * b
# => Vector[3210]

a * b.covector
# => Matrix[[10,1000],[20,200,2000],[30,300,3000]]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读