代码之家  ›  专栏  ›  技术社区  ›  alpaca

如何对一个gonum矩阵求平方根?[关闭]

  •  -2
  • alpaca  · 技术社区  · 7 年前

    我本来打算用 Pow 但它似乎只接受整数值供电。

    例如,元素平方根矩阵 m 矩阵的 a 请注意:

    a = ⎡ 4   9⎤
        ⎣16  25⎦
    
    m = ⎡2  3⎤
        ⎣4  5⎦
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   peterSO    7 年前

    对于矩阵的元素平方根,可以这样写:

    package main
    
    import (
        "fmt"
        "math"
    
        "gonum.org/v1/gonum/mat"
    )
    
    func main() {
        a := mat.NewDense(2, 2, []float64{
            4, 9,
            16, 25,
        })
        fa := mat.Formatted(a, mat.Prefix("    "), mat.Squeeze())
        fmt.Printf("a = %v\n\n", fa)
    
        m := new(mat.Dense)
        m.Apply(func(i, j int, v float64) float64 { return math.Sqrt(v) }, a)
        fm := mat.Formatted(m, mat.Prefix("    "), mat.Squeeze())
        fmt.Printf("m = %v\n\n", fm)
    }
    

    输出:

    a = ⎡ 4   9⎤
        ⎣16  25⎦
    
    m = ⎡2  3⎤
        ⎣4  5⎦