ADVERTISEMENT
ADVERTISEMENT

Golang program to multiply two matrices

Here, we are going to learn how to multiply two matrices in Golang (Go Language)?
Submitted by Nidhi, on March 09, 2021

Problem Solution:

In this program, we will read elements for matrix1 and matrix2 from the user and then multiply both matrices and also print the matrix on the console screen.

Program/Source Code:

The source code to multiply two matrices is given below. The given program is compiled and executed successfully.

// Golang program to multiply two matrices.

package main

import "fmt"

func main() {
	var sum int = 0
	var matrix1 [2][2]int
	var matrix2 [2][2]int
	var matrix3 [2][2]int

	fmt.Printf("Enter matrix1 elements: \n")
	for i := 0; i < 2; i++ {
		for j := 0; j < 2; j++ {
			fmt.Printf("Elements: matrix1[%d][%d]: ", i, j)
			fmt.Scanf("%d", &matrix1[i][j])
		}
	}

	fmt.Printf("Enter matrix2 elements: \n")
	for i := 0; i < 2; i++ {
		for j := 0; j < 2; j++ {
			fmt.Printf("Elements: matrix2[%d][%d]: ", i, j)
			fmt.Scanf("%d", &matrix2[i][j])
		}
	}

	//Multiplication of matrix1 and matrix2.
	for i := 0; i < 2; i++ {
		for j := 0; j < 2; j++ {
			sum = 0
			for k := 0; k < 2; k++ {
				sum = sum + matrix1[i][k]*matrix2[k][j]
			}
			matrix3[i][j] = sum
		}
	}

	fmt.Printf("Matrix1: \n")
	for i := 0; i < 2; i++ {
		for j := 0; j < 2; j++ {
			fmt.Printf("%d ", matrix1[i][j])
		}
		fmt.Printf("\n")
	}

	fmt.Printf("Matrix2: \n")
	for i := 0; i < 2; i++ {
		for j := 0; j < 2; j++ {
			fmt.Printf("%d ", matrix2[i][j])
		}
		fmt.Printf("\n")
	}

	fmt.Printf("Multiplication of matrix1 and matrix2: \n")
	for i := 0; i < 2; i++ {
		for j := 0; j < 2; j++ {
			fmt.Printf("%d ", matrix3[i][j])
		}
		fmt.Printf("\n")
	}
}

Output:

Enter matrix1 elements:
Elements: matrix1[0][0]: 1
Elements: matrix1[0][1]: 2
Elements: matrix1[1][0]: 3
Elements: matrix1[1][1]: 4
Enter matrix2 elements:   
Elements: matrix2[0][0]: 5
Elements: matrix2[0][1]: 6
Elements: matrix2[1][0]: 7
Elements: matrix2[1][1]: 8
Matrix1:
1 2
3 4
Matrix2:
5 6
7 8
Multiplication of matrix1 and matrix2:
19 22
43 50

Explanation:

In the above program, we declare the package main. The main package is used to tell the Go language compiler that the package must be compiled and produced the executable file. Here, we imported the fmt package that includes the files of package fmt then we can use a function related to the fmt package.

In the main() function, we created two 2X2 matrices using a two-dimensional array.

fmt.Printf("Enter matrix1 elements: \n")
    for i:=0;i<2;i++{
        for j:=0;j<2;j++{
            fmt.Printf("Elements: matrix1[%d][%d]: ",i,j)
            fmt.Scanf("%d",&matrix1[i][j])
        }
    }
    
    fmt.Printf("Enter matrix2 elements: \n")
    for i:=0;i<2;i++{
        for j:=0;j<2;j++{
            fmt.Printf("Elements: matrix2[%d][%d]: ",i,j)
            fmt.Scanf("%d",&matrix2[i][j])
        }
    }

In the above code, we read elements for matrix1 and matrix2 from the user.

    //Multiplication of matrix1 and matrix2.
    for i:=0;i<2;i++{
        for j:=0;j<2;j++{
            sum=0
            for k:=0;k<2;k++{
                sum=sum+matrix1[i][k]*matrix2[k][j]
            }
            matrix3[i][j]=sum
        }
    }

In the above code, we performed the multiplication of two matrices and printed the result on the console screen.

Golang Array Programs »



ADVERTISEMENT



ADVERTISEMENT



Comments and Discussions


ADVERTISEMENT

ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT

Languages: » C » C++ » C++ STL » Java » Data Structure » C#.Net » Android » Kotlin » SQL
Web Technologies: » PHP » Python » JavaScript » CSS » Ajax » Node.js » Web programming/HTML
Solved programs: » C » C++ » DS » Java » C#
Aptitude que. & ans.: » C » C++ » Java » DBMS
Interview que. & ans.: » C » Embedded C » Java » SEO » HR
CS Subjects: » CS Basics » O.S. » Networks » DBMS » Embedded Systems » Cloud Computing
» Machine learning » CS Organizations » Linux » DOS
More: » Articles » Puzzles » News/Updates

© https://www.includehelp.com some rights reserved.