package main import ( "fmt" "git.kingecg.top/kingecg/gomatrix" ) // 示例程序演示矩阵功能 func Example() { fmt.Println("创建矩阵示例:") // 创建一个2x3的矩阵 data1 := []float64{1, 2, 3, 4, 5, 6} mat1, err := gomatrix.NewMatrix(data1, []int{2, 3}) if err != nil { fmt.Printf("创建矩阵失败: %v\n", err) return } fmt.Printf("矩阵1:\n%s\n", mat1.String()) // 创建另一个2x3的矩阵 data2 := []float64{7, 8, 9, 10, 11, 12} mat2, err := gomatrix.NewMatrix(data2, []int{2, 3}) if err != nil { fmt.Printf("创建矩阵失败: %v\n", err) return } fmt.Printf("矩阵2:\n%s\n", mat2.String()) // 矩阵加法 sum, err := mat1.Add(mat2) if err != nil { fmt.Printf("矩阵加法失败: %v\n", err) return } fmt.Printf("矩阵1 + 矩阵2:\n%s\n", sum.String()) // 创建一个3x2的矩阵用于矩阵乘法 data3 := []float64{1, 2, 3, 4, 5, 6} mat3, err := gomatrix.NewMatrix(data3, []int{3, 2}) if err != nil { fmt.Printf("创建矩阵失败: %v\n", err) return } fmt.Printf("矩阵3 (3x2):\n%s\n", mat3.String()) // 创建一个2x2的矩阵用于矩阵乘法 data4 := []float64{1, 2, 3, 4} mat4, err := gomatrix.NewMatrix(data4, []int{2, 2}) if err != nil { fmt.Printf("创建矩阵失败: %v\n", err) return } fmt.Printf("矩阵4 (2x2):\n%s\n", mat4.String()) // 矩阵乘法 product, err := mat3.MatMul(mat4) if err != nil { fmt.Printf("矩阵乘法失败: %v\n", err) return } fmt.Printf("矩阵3 × 矩阵4:\n%s\n", product.String()) // 矩阵转置 transposed, err := mat1.Transpose() if err != nil { fmt.Printf("矩阵转置失败: %v\n", err) return } fmt.Printf("矩阵1的转置:\n%s\n", transposed.String()) // 矩阵数乘 scaled := mat1.Scale(2.0) fmt.Printf("矩阵1 × 2:\n%s\n", scaled.String()) // 创建零矩阵 zeros, err := gomatrix.NewZeros([]int{2, 2}) if err != nil { fmt.Printf("创建零矩阵失败: %v\n", err) return } fmt.Printf("2x2零矩阵:\n%s\n", zeros.String()) // 创建单位矩阵 identity, err := gomatrix.NewIdentity(3) if err != nil { fmt.Printf("创建单位矩阵失败: %v\n", err) return } fmt.Printf("3x3单位矩阵:\n%s\n", identity.String()) }