Bonjour, je cherche à transformer une matrice en colonne en matrice ligne mais je ne trouve pas la fonction adéquate
Merci par avance
Bonne journée
Bonjour, je cherche à transformer une matrice en colonne en matrice ligne mais je ne trouve pas la fonction adéquate
Merci par avance
Bonne journée
quid de numpy.ndarray.transpose()
- W
Ca marche, merci
Mais maintenant je dois mettre ma matrice en liste car sinon je ne peut pas faire de recherche à l’intérieur, donc en faite j'aurais pu la laisser en colonne (au moins maintenant je sait comment faire)
Je fait ça :
et ça me met cette erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 for i in range (0,Mat.shape[1]): if Y[i]==83: frangeX = frangeX + 1
if Y[i]==83:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
Salut,
Parcourir les éléments de la matrice se fait avec .nditer, genre:
Par contre, je ne vois pas ce que vous essayez de faire avec le code que vous montrez:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 for x in np.nditer(array, options): ...
D'où sort Y? ou est la matrice?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 for i in range (0,Mat.shape[1]): if Y[i]==83: frangeX = frangeX + 1
- W
Ma matrice est Y et je souhaite ajouter 1 à ma fonction frangeX lorsque Y = 83 (qui est la moyenne trouver dans une autre fonction) sur tout la largeur de la matrice Y
Salut,
En écrivant "frangeX = frangeX + 1", vous considérez frangeX est un "number" et non une fonction.
Cela n'aide pas à comprendre ce que pourrait bien vouloir dire "ajouter 1 à la fonction frangeX" et encore moins comment réaliser la chose correspondante.
Si Y est la matrice, Y[i] sera la ligne i => une liste de... et non un "nombre".
Si vous avez calculé et stocké quelque part la moyenne de chaque ligne de Y, nous pourrions espérer une "colonne" / "liste" stockée dans une variable "meanY" telle que "meanY[i]" soit la moyenne de la colonne "i" de "Y".
Ajouter 1 à je ne sais quoi lorsque la moyenne de la ligne est 83 n'a pas besoin d'itérer sur tous les éléments de Y, mais sur ceux de meanY qui est "sequence" simple i.e.:
De même meanY devrait pouvoir se calculer "simplement" via:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 for v in meanY: if v == 83: # ajouter 1 à je ne sais pas encore quoi
- W
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 length = len(Y[0]) meanY = [ sum(z) / length for z in Y ]
Je dois compter des franges d'une bulle
J'ai réussit à les détecter et j'obtiens une courbe sinusoïdale dont les valeurs sont dans la matrice Y, j'en est fait la moyenne appelé mean (environs 83.215) que j'ai convertie en nombres entier pour avoir 83, j'ai fait une matrice de cette moyenne rempli avec le nombre 83 de la taille de Y pour pouvoir tracer la droite moyenne sur la courbe.
J'ai vérifier qu'il y avait bien des valeur Y = 83 dans la matrice
Il faudrait maintenant que lorsque mean = Y s'ajoute +1 à frangeX (initialement j'ai imposer frangeX = 0), ainsi je pourrais lancer un calcul pour déterminer le diamètre de mes bulles.
En espèrent avoir été plus clair...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85 "#### Ouverture de l'image ####" # Ouverture de l'image frange = Image.open('test3.jpg') # Convertion de l'image en matrice Mat = np.asarray(frange) "#### Tracer de la courbes représentant l'intensiter des franges ####" #Création d'une liste vide Y = [] #Définition de l'ordonnée : calcule de l'intervalle : on commence par la valeur de départ de la séquence, # La valeur de fin de la séquence -1 de sorte que l'arrêt soit exclu, nombre # déchantillon à générer #Ici on commence à 0 puis sur la largeur de l'objet -1pixel de sorte que l'arrêt # soit exclu pour avoir autant d'échantillon que la taille de la largeur. X = np.linspace(0,Mat.shape[1]-1,Mat.shape[1]) #Recherche du centre : taille de la hauteur de l'image / 2 centre = Mat.shape[0]/2 # Boucle commencant au pixel 0 finissant au bout de la largeur de l'objet for i in range (0,Mat.shape[1],1): #Ajout des valeur trouver sur le centre dans la liste Y qui correspondra # à l'intensiter des franges Y.append(Mat[centre][i]) # Convertion de la liste Y en matrice Y = np.array(Y) #Calcul de la moyenne de Y moy = np.average(Y) "#### Tracer de la moyenne ####" # Création d'une liste vide Mean = [] # le liste de Mean est mis à la même taille que X shapeMean=np.shape(X) U = np.zeros(shapeMean) # Boucle commencant au pixel 0 finissant au bout de la largeur de l'objet for i in range (0,Mat.shape[1],1): #Ajout de la moyenne à Mean Mean.append(moy) # Conversion de Mean en nombre décimal en nombre entier c=np.round(Mean) # Conversion de la liste Mean en matrice Mean = np.array(c) "#### Comptage des franges ####" # initialement frangeX = 0 car on n'a pas encore de frange frangeX = 0 # Boucle commençant au pixel 0 finissant au bout de la largeur de l'objet for i in range (0,Mat.shape[1]): if Y[i]==83: frangeX = frangeX + 1 # frangeX /2 car le programme compte le front montant et déscendant de la même sinusoïde frangeX = frangeX/2 "#### Affichage de l'image et des courbes ####" fig1 = plt.figure(1) ax1 = fig1.add_subplot(1,2,1) ax1.imshow(frange, cmap=plt.cm.gray) ax2 = fig1.add_subplot(1,2,2) ax2.plot(X,Y,'r-') ax2.plot(X,Mean,'g-')
Regardez le nombre d'objets associés à "moyenne" dans votre code: X, moy, Mean, shapeMean,...
Relisez les explications exprimées en phrases écrites en "français" sur ce que vous attendez que çà fasse.
La description en français me semble aussi embrouillée que le code Python...
last but not least: quel était la question posée: "Transformer une matrice colonne en matrice ligne".
Après que je vous ai donné la réponse, vous dites:
Si vous avez encore une idée trop vague de ce que vous voulez faire pour l'exprimer simplement, pas la peine d'essayer de coder quoi que ce soit.Ca marche, merci
Mais maintenant je dois mettre ma matrice en liste car sinon je ne peut pas faire de recherche à l’intérieur, donc en faite j'aurais pu la laisser en colonne (au moins maintenant je sait comment faire)
- W
Je ne suis pas programmatrice, je n'est pas le choix, je dois faire ce programme pour mon stage.
J'ai une idée, je l'applique, je fait avec le peut de fonction informatique que je connait, je demande de l'aide, après je ne peut rien y faire si l'idée que j'ai n'est pas toujours la bonne ou la plus simple.
Donc désoler de vous déranger avec mes questions, si vous penser que une petite étudiante ne vaut pas la peine d'être aider il ne faut pas gérer un forum qui propose de l'aide.
Le problème est qu'il n'y a pas de question juste un appel à l'aide.Donc désoler de vous déranger avec mes questions, si vous penser que une petite étudiante ne vaut pas la peine d'être aider il ne faut pas gérer un forum qui propose de l'aide.
Ne pensez vous pas qu'il devrait plutôt être adressé à votre responsable de stage?
Bon courage.
- W
Ils ne font pas de programmation, c'est un sujet de secours car ma manip ne fonctionne pas.
la réponse est 42?
C'est la réponse à la question qui n'a pas été posée.
d'après le "Le Guide du voyageur galactique".
Merci pour votre sympathie, je saurais vous faire la pub qui va avec
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager