Produit matriciel

Fermé
cam - Modifié par cam le 27/01/2016 à 18:46
 Utilisateur anonyme - 9 févr. 2016 à 12:58
Bonjour! j'ai un problème avec mon script, si vous pouviez m'éclairer ça serait top!
Merci d'avance.

Le script:

import numpy as np
def produitmat(A,B):
if len(A[0])!=len(B):
print('les matrices ne sont pas compatibles pour le produit')
else:
AB=np.zeros((len(A),len(B[0]))
for j in range(len(B[0])):
for i in range(len(A[0])):
m=0
for k in range(len(B)):
m=m+A[i,k]*B[k,j]
AB[i,j]=m
return AB

Python me retourne ça:

File "F:\Cours\Info\fichiers python\Exercices 2\ex1.py", line 7
for j in range(len(B[0])):
^
SyntaxError: invalid syntax

2 réponses

Flachy Joe Messages postés 2103 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 21 novembre 2023 259
Modifié par Flachy Joe le 27/01/2016 à 19:03
Salut,
utilise les balises
<code>
pour que l'affichage soit correct. Merci.

Si tu utilisais un éditeur de bonne facture, tu aurais un suivi des parenthèses qui t'aurais permis de remarquer qu'il en manque une à la ligne 6
import numpy as np
def produitmat(A,B):
  if len(A[0])!=len(B):
    print('les matrices ne sont pas compatibles pour le produit')
  else:
    AB=np.zeros(   ( len(A), len(B[0]) )   )#<= CELLE CI
    for j in range(len(B[0])):
      for i in range(len(A[0])):
        m=0
        for k in range(len(B)):
          m=m+A[i,k]*B[k,j]
          AB[i,j]=m
  return AB

Bonne continuation !

;-) Flachy Joe ;-)
"Qui ne se plante jamais n'a aucune chance de pousser !" Graf anonyme
1
Flachy Joe Messages postés 2103 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 21 novembre 2023 259
27 janv. 2016 à 19:03
Remarque, un code équivalent :
import numpy as np
def produitmat(A,B):
  return np.dot(A,B)
0
Ah oui je ne l'avais pas vue merci beaucoup!
Je n'ais pas le choix de l'éditeur, c'est pour les cours.
PS: le but était justement de ne pas utiliser dot, mais merci quand même!
0