Golang 两个矩阵相加

Golang 两个矩阵相加

在这个教程中,我们将编写一个使用go语言的程序来将两个矩阵相加。矩阵是一组按行和列排列的数字,是一个二维数组。

使用Go语言编写的矩阵相加程序

让我们来看一个使用循环来相加两个矩阵的Go语言程序。

上述程序的算法

步骤1 - 导入fmt包。

步骤2 - 现在我们需要开始main()函数。

步骤3 - 然后我们创建两个名为matrixA和matrixB的矩阵,并在其中存储值。

步骤4 - 使用fmt.Println()函数在屏幕上打印数组。

步骤5 - 初始化一个新的int类型的矩阵来保存结果。

步骤6 - 使用for循环迭代两个矩阵来相加。

步骤7 - 第一个for循环用于获取矩阵的行,而第二个for循环用于获取矩阵的列。

步骤8 - 循环结束后,新矩阵的元素为两个矩阵的和。

步骤9 - 使用for循环和fmt.Println()函数打印新矩阵的元素。

示例

package main
import (
   "fmt"
)
func main() {
   var i, j int
   var matrixC [3][3]int
   matrixA := [3][3]int{
      {0, 1, 2},
      {4, 5, 6},
      {8, 9, 10},
   }
   matrixB := [3][3]int{
      {10, 11, 12},
      {13, 14, 15},
      {16, 17, 18},
   }
   fmt.Println("The first matrix is:")
   for i = 0; i < 3; i++ {
      for j = 0; j < 3; j++ {
         fmt.Print(matrixA[i][j], "\t")
      }
      fmt.Println()
   }
   fmt.Println()
   fmt.Println("The second matrix is:")
   for i = 0; i < 3; i++ {
      for j = 0; j < 3; j++ {
         fmt.Print(matrixB[i][j], "\t")
      }
      fmt.Println()
   }
   fmt.Println()
   fmt.Println("The results of addition of matrix A & B: ")
   for i = 0; i < 3; i++ {
      for j = 0; j < 3; j++ {
         matrixC[i][j] = matrixA[i][j] + matrixB[i][j]
      }
   }
   for i = 0; i < 3; i++ {
      for j = 0; j < 3; j++ {
         fmt.Print(matrixC[i][j], "\t")
      }
      fmt.Println()
   }
}

输出

The first matrix is:
0   1   24  5   6   
8   9   10  

The second matrix is:
10  11  12  
13  14  15  
16  17  18  

The results of addition of matrix A & B: 
10  12  14  
17  19  21  
24  26  28

使用外部函数的Golang程序来添加两个矩阵

在这个示例中,我们将使用用户定义的函数来添加两个矩阵。

语法

func make ([] type, size, capacity)

在go语言中,make函数用于创建一个数组/映射,它接受要创建的变量类型、大小和容量作为参数

步骤

步骤1 - 导入fmt包。

步骤2 - 创建一个函数来添加两个矩阵。

步骤3 - 在该函数中使用make()函数创建一个矩阵的切片,使用range函数迭代矩阵以找到和。

步骤4 - 开始主函数。

步骤5 - 初始化两个矩阵并将元素存储在其中,并在屏幕上打印出矩阵。

步骤6 - 通过将两个矩阵作为参数传递给AddMatrices()函数来调用该函数。

步骤7 - 存储得到的结果并在屏幕上打印出来。

示例

package main
import (
   "fmt"
)
func AddMatrix(matrix1 [3][3]int, matrix2 [3][3]int) [][]int {
   result := make([][]int, len(matrix1))
   for i, a := range matrix1 {
      for j, _ := range a {
         result[i] = append(result[i], matrix1[i][j]+matrix2[i][j])
      }
   }
   return result
}
func main() {
   matrixA := [3][3]int{
      {0, 1, 2},
      {4, 5, 6},
      {8, 9, 10},
   }
   matrixB := [3][3]int{
      {10, 11, 12},
      {13, 14, 15},
      {16, 17, 18},
   }
   fmt.Println("The first matrix is:")
   for i := 0; i < 3; i++ {
      for j := 0; j < 3; j++ {
         fmt.Print(matrixA[i][j], "\t")
      }
      fmt.Println()
   }
   fmt.Println()
   fmt.Println("The second matrix is:")
   for i := 0; i < 3; i++ {
      for j := 0; j < 3; j++ {
         fmt.Print(matrixB[i][j], "\t")
      }
      fmt.Println()
   }
   fmt.Println()
   result := AddMatrix(matrixA, matrixB)
   fmt.Println("The results of addition of matrix A & B: ")
   for i := 0; i < 3; i++ {
      for j := 0; j < 3; j++ {
         fmt.Print(result[i][j], "\t")
      }
      fmt.Println()
   }
}

输出

The first matrix is:
0   1   2   
4   5   6   
8   9   10  

The second matrix is:
10  11  12  
13  14  15  
16  17  18  

The results of addition of matrix A & B: 
10  12  14  
17  19  21  
24  26  28

结论

我们成功地编译并执行了一个Go语言程序来添加矩阵,并提供了示例。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程