Как мне умножить матрицу на вектор в гонуме? - PullRequest
0 голосов
/ 12 октября 2018

Я хочу умножить матрицу mat.Dense на mat.VecDense Вектор, но, очевидно, mat.Dense и mat.VecDens не реализуют интерфейс Matrix или не определяют метод для умножения матрицы на вектор.Как бы я это сделал?

1 Ответ

0 голосов
/ 12 октября 2018

Решено.

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)
}
...