Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hygull/3bf6b50ce806e542922444c6cc37cdf1 to your computer and use it in GitHub Desktop.
Save hygull/3bf6b50ce806e542922444c6cc37cdf1 to your computer and use it in GitHub Desktop.
Matrix multiplication in Golang(2 matrices of order 3x3) created by hygull - https://repl.it/Et8I/2
/*
{
"date_of_creation" => "19 Dec 2016, Mon",
"aim_of_program" => "Matrix multiplication in Golang",
"coded_by" => "Rishikesh Agrawani",
"Go_version" => "1.7",
}
*/
package main
import "fmt"
func main() {
//Defining 2D matrices
m1 := [3][3]int{
[3]int{1, 1, 1},
[3]int{1, 1, 1},
[3]int{1, 1, 1},
}
m2 := [3][3]int{
[3]int{1, 1, 1},
[3]int{1, 1, 1},
[3]int{1, 1, 1},
}
//Declaring a matrix variable for holding the multiplication results
var m3 [3][3]int
for i := 0; i < 3; i++ {
for j := 0; j < 3; j++ {
m3[i][j] = 0
for k := 0; k < 3; k++ {
m3[i][j] = m3[i][j] + (m1[i][k] * m2[k][j])
}
}
}
twoDimensionalMatrices := [3][3][3]int{m1, m2, m3}
matrixNames := []string{"MATRIX1", "MATRIX2", "MATRIX3 = MATRIX1*MATRIX2"}
for index, m := range twoDimensionalMatrices {
fmt.Println(matrixNames[index], ":")
showMatrixElements(m)
fmt.Println()
}
}
//A function that displays matix elements
func showMatrixElements(m [3][3]int) {
for i := 0; i < 3; i++ {
for j := 0; j < 3; j++ {
fmt.Printf("%d\t", m[i][j])
}
fmt.Println()
}
}
/*
MATRIX1 :
1 1 1
1 1 1
1 1 1
MATRIX2 :
1 1 1
1 1 1
1 1 1
MATRIX3 = MATRIX1*MATRIX2 :
3 3 3
3 3 3
3 3 3
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment