Produit matriciel

cam -  
 Utilisateur anonyme -
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

  1. Flachy Joe Messages postés 2303 Statut Membre 261
     
    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
    1. Flachy Joe Messages postés 2303 Statut Membre 261
       
      Remarque, un code équivalent :
      import numpy as np
      def produitmat(A,B):
        return np.dot(A,B)
      0
    2. cam
       
      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