Golang程序为两个矩阵相加
在本教程中,我们将编写一个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
在这个例子中,我们将使用用户定义的函数来添加两个矩阵。
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语言程序,将其添加到矩阵中,并附有实例。