Produit matriciel

[Fermé]
Signaler
-
 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
A voir également:

2 réponses

Messages postés
2089
Date d'inscription
jeudi 16 septembre 2004
Statut
Membre
Dernière intervention
27 juin 2021
249
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41713 internautes nous ont dit merci ce mois-ci

Messages postés
2089
Date d'inscription
jeudi 16 septembre 2004
Statut
Membre
Dernière intervention
27 juin 2021
249
Remarque, un code équivalent :
import numpy as np
def produitmat(A,B):
  return np.dot(A,B)
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!

Salut,

Ton problème est réglé ? Si oui, mets le sujet en résolu. Si non, peut tu préciser ce qui ne va pas dans le code que tu as mis ? (erreur de compilation, erreur de logique)