Rotation d’une matrice en Python

Rotation d’une matrice en Python - Python - Programmation

Marsh Posté le 15-12-2010 à 13:18:22    

Bonjour,
 
Voilà, je souhaiterai faire roter une matrice en Python.
La classe devra lire une matrice carrée dans un fichier, vérifier qu’elle est bien carrée, effectuer une rotation de la matrice de 90° dans le sens horloger et enfin écrire la matrice résultante dans un fichier.
J’ai défini une classe myMatrix que j’envisage utiliser de la façon suivante :
 
 M = myMatrix(<arg1> )
 print M
 M . rotate ( )
 print M
 M . writeFile(<arg2> )
 
Avec une méthode booléenne checkMatrix qui vérifie que la matrice est bien carrée.
Exemple :
00 01 02 03 04                           40 30 20 10 00
10 11 12 13 14                           41 31 21 11 01
20 21 22 23 24                           42 32 22 12 02
30 31 32 33 34                           43 33 23 13 03
40 41 42 43 44                           44 34 24 14 04
Fichier-initial.txt                        Fichier-Final.txt  
 
Merci  :)


Message édité par yims1er le 15-12-2010 à 13:19:28
Reply

Marsh Posté le 15-12-2010 à 13:18:22   

Reply

Marsh Posté le 15-12-2010 à 14:29:01    

Pourquoi tu t'emmerdes à définir des types de matrices? Elles sont pas bien celles de numpy?

 

et accessoirement, quelle est la question?

Message cité 1 fois
Message édité par masklinn le 15-12-2010 à 14:29:21

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 15-12-2010 à 15:04:06    

masklinn a écrit :

Pourquoi tu t'emmerdes à définir des types de matrices? Elles sont pas bien celles de numpy?
 
et accessoirement, quelle est la question?


 
Numpy???Je ne connais pas sincèrement.
Bref je dois résoudre cet exercice sur python et j'ai besoin d'aide là.
Merci :)

Reply

Marsh Posté le 05-01-2011 à 17:53:08    

Comprends pas,
un truc du genre  
final[ligne][colonne] = initial[lentotal-colonne-1][ligne]
??
(si je ne me suis pas trompé je n'ai pas vérifié)

Reply

Marsh Posté le 15-01-2011 à 19:19:05    

mat = [[0, 1, 2, 3, 4],
[10, 11, 12, 13, 14],
[20, 21, 22, 23, 24],
[30, 31, 32, 33, 34],
[40, 41, 42, 43, 44]]

 

mat_de_lhorloger = list(zip(*reversed(mat)))

 

EDIT: Accessoirement,

 

def checkMatrix(matrix):
 from itertools import zip_longest
 return len(matrix) == len(list(zip(*matrix))) == len(list(zip_longest(*matrix)))


Message édité par _iOn_ le 15-01-2011 à 21:24:13

---------------
Any sufficiently complex bug is indistinguishable from magic.
Reply

Marsh Posté le 27-08-2011 à 12:12:46    


J'essaye de trouver comment faire une rotation dans le sens inverse (donc dans le sens anti-horaire)
 
pouvez-vous m'aider?
 

Reply

Marsh Posté le 27-08-2011 à 20:51:39    

logitec222 a écrit :


J'essaye de trouver comment faire une rotation dans le sens inverse (donc dans le sens anti-horaire)
 
pouvez-vous m'aider?
 


 
C'est quoi ton code ?
Au pire tu fais 3 rotation horaire, ça donne la même chose non ?


---------------
Des piafs en photo
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed