为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 gonum 中将矩阵与向量相乘?

如何在 gonum 中将矩阵与向量相乘?

Go
茅侃侃 2023-04-24 15:51:47
我想将mat.Dense矩阵与mat.VecDense向量相乘,但显然mat.Dense 也mat.VecDens没有实现矩阵接口或定义将矩阵与向量相乘的方法。我该怎么做?
查看完整描述

1 回答

?
BIG阳

TA贡献1859条经验 获得超6个赞

解决了。


mat.NewVecDense(...)返回一个*mat.VecDense,它实现了一个方法func MulVec(a mat.Matrix, b mat.Vector)


这是验证功能的测试


func TestMatrixVectorMul(t *testing.T) {

    a := mat.NewDense(3, 3, []float64{

        1, 2, 3, 4, 5, 6, 7, 8, 9,

    })

    b := mat.NewVecDense(3, []float64{

        1, 2, 3,

    })

    actual := make([]float64, 3)

    c := mat.NewVecDense(3, actual)


    // this was the method, I was looking for. 

    c.MulVec(a, b)

    expected := []float64{14, 32, 50}

    assert.Equal(t, expected, actual)

}


查看完整回答
反对 回复 2023-04-24
  • 1 回答
  • 0 关注
  • 112 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信