Techieindoor

Go – Program to multiply two matrix in go

Here, we will write a program to multiply two matrix in go. Given below, you can find algorithm and program.

Here, we are going to learn algorithm and program to multiply two matrix:

Number of column of first matrix and number of rows of second matrix should be same in matrix multiplication.

Size of the resultant matrix would be, matrix_1 rows * matrix_2 column

Example:

Input: 
Matrix_1: mat_1[2][3]

Matrix_2: mat_2[3][3]

Here, mat_1 column is equal to mat_2 row.

Size of resultant matrix:
result[2][3]

row = 2, column = 3

Matrix_1:
[
2, 3, 1
2, -7, 4
]

row = 3, column = 3

Matrix_2:
[
3, 4, 5
1, 1, 4
2, 1, 4
]

Output:
[
11, 12, 26
7, 5, -2
]

Code:

package main

import (

 "fmt"

)

func main() {

  var mat_row_1, mat_col_1 int

  var mat_row_2, mat_col_2 int

  var mat_1, mat_2, result [10][10]int

  fmt.Print("Enter no of rows of mat_1: ")

  fmt.Scanln(&mat_row_1)

  fmt.Print("Enter no of column of mat_1: ")

  fmt.Scanln(&mat_col_1)

  fmt.Print("Enter no of rows of mat_2: ")

  fmt.Scanln(&mat_row_2)

  fmt.Print("Enter no of column of mat_2: ")

  fmt.Scanln(&mat_col_2)

  fmt.Println("\nEnter matrix_1 elements: ")

  for i := 0; i < mat_row_1; i++ {

    for j := 0; j < mat_col_1; j++ {

      fmt.Scanf("%d ", &mat_1[i][j])

    }

  }

  fmt.Println("\nEnter matrix_2 elements: ")

  for i := 0; i < mat_row_2; i++ {

    for j := 0; j < mat_col_2; j++ {

      fmt.Scanf("%d ", &mat_2[i][j])

    }

  }


  // Multiplication of two matrix

  for i := 0; i < mat_row_1; i++ {

    for j := 0; j < mat_col_2; j++ {

      result[i][j] = 0

      for k := 0; k < mat_col_2; k++ {

        result[i][j] += mat_1[i][k] * mat_2[k][j]

      }

    }

  }

  fmt.Println("\nAfter Multiplication Matrix is: \n")

  for i := 0; i < mat_row_1; i++ {

    for j := 0; j < mat_col_2; j++ {

      fmt.Printf("%d ", result[i][j])

    }
    fmt.Println("\n")

  }

Output:

Enter no of rows of mat_1: 2
Enter no of column of mat_1: 3

Enter no of rows of mat_2: 3
Enter no of column of mat_2: 3

Enter matrix_1 elements:
2
3
1
2
-7
4

Enter matrix_2 elements:
3
4
5
1
1
4
2
1
4

After Multiplication Matrix is:

11 12 26
7 5 -2

To learn more about golang. Please follow given below link.

https://www.techieindoor.com/go-lang/

References:

https://golang.org/doc/
https://golang.org/pkg/

Exit mobile version