Go to file
程广 bfcfba4e3f ```
feat(matrix): 添加矩阵求和功能

新增Sum()方法用于计算矩阵所有元素的总和,
遍历矩阵数据并累加所有元素值。
```
2025-12-31 17:48:46 +08:00
exmaples ``` 2025-12-30 21:24:27 +08:00
LICENSE ``` 2025-12-30 21:24:27 +08:00
README.md first commit 2025-12-30 21:24:10 +08:00
go.mod ``` 2025-12-30 21:24:27 +08:00
matrix.go ``` 2025-12-31 17:48:46 +08:00
matrix_test.go ``` 2025-12-31 17:26:27 +08:00

README.md

gomatrix

gomatrix 是一个用Go语言编写的矩阵运算库提供了创建和操作矩阵的功能支持多种矩阵运算操作。

功能特性

  • 创建矩阵(从数组、零矩阵、单位矩阵等)
  • 矩阵基本运算(加法、减法、乘法)
  • 矩阵乘法(线性代数意义上的矩阵乘法)
  • 矩阵转置
  • 矩阵数乘
  • 访问和修改矩阵元素
  • 多维矩阵支持

安装

go get git.kingecg.top/kingecg/gomatrix

使用示例

package main

import (
    "fmt"
    "git.kingecg.top/kingecg/gomatrix"
)

func main() {
    // 创建一个2x3的矩阵
    data := []float64{1, 2, 3, 4, 5, 6}
    mat, err := gomatrix.NewMatrix(data, []int{2, 3})
    if err != nil {
        fmt.Printf("创建矩阵失败: %v\n", err)
        return
    }
    fmt.Printf("矩阵:\n%s\n", mat.String())

    // 创建另一个矩阵进行运算
    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
    }

    // 矩阵加法
    sum, err := mat.Add(mat2)
    if err != nil {
        fmt.Printf("矩阵加法失败: %v\n", err)
        return
    }
    fmt.Printf("矩阵相加结果:\n%s\n", sum.String())

    // 矩阵乘法
    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
    }

    data4 := []float64{1, 2, 3, 4}
    mat4, err := gomatrix.NewMatrix(data4, []int{2, 2})
    if err != nil {
        fmt.Printf("创建矩阵失败: %v\n", err)
        return
    }

    product, err := mat3.MatMul(mat4)
    if err != nil {
        fmt.Printf("矩阵乘法失败: %v\n", err)
        return
    }
    fmt.Printf("矩阵乘法结果:\n%s\n", product.String())
}

API 文档

构造函数

  • NewMatrix(data []float64, shape []int): 从给定的数据和形状创建矩阵
  • NewZeros(shape []int): 创建指定形状的零矩阵
  • NewOnes(shape []int): 创建指定形状的全1矩阵
  • NewIdentity(size int): 创建指定大小的单位矩阵

矩阵运算

  • Add(other *Matrix): 矩阵加法
  • Subtract(other *Matrix): 矩阵减法
  • Multiply(other *Matrix): 矩阵元素对应相乘
  • MatMul(other *Matrix): 矩阵乘法(线性代数乘法)
  • Scale(factor float64): 矩阵数乘
  • Transpose(): 矩阵转置

其他方法

  • Get(indices ...int): 获取指定位置的值
  • Set(value float64, indices ...int): 设置指定位置的值
  • String(): 返回矩阵的字符串表示
  • Shape(): 返回矩阵的形状
  • Size(): 返回矩阵的大小

许可证

本项目采用 MIT 许可证 - 请参阅 LICENSE 文件了解详情。