Maison > développement back-end > Golang > Comment implémenter la transformation matricielle dans Golang

Comment implémenter la transformation matricielle dans Golang

PHPz
Libérer: 2023-04-10 15:09:29
original
724 Les gens l'ont consulté

Golang est un langage de programmation open source. Son efficacité et sa concurrence le rendent puissant. L'exploitation des matrices dans Golang est une tâche importante. Cet article explique comment implémenter la conversion matricielle dans Golang.

  1. Qu'est-ce qu'une matrice

Une matrice est un tableau mathématique rectangulaire contenant un ou plusieurs éléments numériques. Dans Golang, nous pouvons utiliser l'imbrication de tranches pour représenter des matrices. Par exemple, une matrice 2×2 peut être représentée par m := [][]float64{{1,2},{3,4}}.

  1. Matrix transpose

Matrix transpose consiste à échanger les lignes et les colonnes de la matrice. Dans Golang, nous pouvons parcourir la matrice par des boucles for imbriquées, puis transposer les éléments aux positions correspondantes pour obtenir une transposition matricielle.

func transpose(m [][]float64) [][]float64 {

rows := len(m)
cols := len(m[0])
result := make([][]float64, cols)
for i := range result {
    result[i] = make([]float64, rows)
}
for i := 0; i < rows; i++ {
    for j := 0; j < cols; j++ {
        result[j][i] = m[i][j]
    }
}
return result
Copier après la connexion

}

Dans le code ci-dessus, nous définissons d'abord le nombre de lignes et de colonnes de la matrice, et créons une nouvelle matrice avec pour stocker la matrice transposée. Ensuite, nous utilisons une boucle for imbriquée pour parcourir la matrice d'origine, stocker les éléments aux positions correspondantes dans les positions correspondantes dans la nouvelle matrice et enfin renvoyer le résultat.

  1. Rotation de la matrice

La rotation de la matrice consiste à faire pivoter la matrice dans le sens des aiguilles d'une montre ou dans le sens inverse d'un certain angle. Dans Golang, nous pouvons réaliser une rotation matricielle grâce à la transposition matricielle et à l'inversion de ligne ou de colonne.

func rotateClockwise(m [][]float64) [][]float64 {

result := transpose(m)
for i := range result {
    for j := range result[i] {
        result[i][j], result[i][len(result[i])-1-j] = result[i][len(result[i])-1-j], result[i][j]
    }
}
return result
Copier après la connexion

}

Dans le code ci-dessus, nous appelons d'abord la fonction de transposition pour obtenir la matrice transposée, puis inversons chaque changement de ligne. Enfin, renvoyez la matrice pivotée.

  1. Résumé

Cet article présente comment implémenter la transposition matricielle et la rotation matricielle dans Golang. Dans le développement réel, les opérations matricielles sont très pratiques, il est donc extrêmement nécessaire que les programmeurs Golang maîtrisent la technologie des opérations matricielles.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal