|
Posté le 04-05-2008 à 17:10 | #
|
C'est normal " adurl " ? J'ai essaye de modifier c'est un peu moins pire mais bon... |
|
|
Posté le 04-05-2008 à 20:03 | #
|
Non, ce n'était pas normal, je ne sais pas pourquoi ça y était...
Mais j'ai corrigé. |
|
|
Posté le 17-06-2014 à 20:57 | #
|
Le lien est mort |
|
|
Posté le 18-06-2014 à 18:18 | #
|
Corrigé, il y avait un e en trop à "planet" |
|
|
Posté le 19-06-2014 à 08:52 | #
|
Merci |
|
|
Posté le 01-02-2022 à 17:41 | #
|
Pour récupérer un vecteur colonne à l'intérieur d'une matrice, auriez-vous mieux que ceci :
List→Mat(Mat→List(A,1
Le code met dans Mat Ans la première colonne de Mat A. Il m'a l'air fort lourd à exécuter (créer une liste puis enfin la matrice/vecteur voulu-e) - enfin, j'ai l'impression que ça va utiliser beaucoup de mémoire si la matrice est grande... |
|
|
Posté le 01-02-2022 à 17:46 | #
|
Mince je voulais plutôt dire : ce code
Mat→List(A,1
List→Mat(List Ans |
|
|
Posté le 01-02-2022 à 21:33 | #
|
Avec une matrice de 60×60 (43 kio) List→Mat passe donc ne crée pas de copie de la matrice. Par contre tu as deux fois la colonne en mémoire au moment de la conversion (List Ans et la nouvelle matrice), jusqu'à ce que tu puisse ClrList ou remplacer la List Ans.
Une autre option, si le nombre de colonne est sensiblement plus faible que le nombre de lignes, c'est de faire un produit matriciel :
[[10,20,30,40]
[11,21,31,41]
[12,22,32,42]]→Mat A
Mat A×[[0][1][0][0]] // = [[20][21][22]]
Mais pour une matrice carrée ça prend tout autant d'espace. Je vois pas d'autre astuce sinon. |
|
|
Posté le 01-02-2022 à 23:08 | #
|
LephenixNoir a écrit : Avec une matrice de 60×60 (43 kio)
Ah oui quand même, je ne pensais pas que ça pesait si lourd que ça
Pas mal le coup du produit matriciel, je n'y avait pas pensé. Malheureusement je ne pense pas que je saurais l'utiliser, le programme que je suis en train d'écrire acceptant toute taille de matrice. En tout cas ce sera un nouveau challenge alors pour essayer de gaspiller le moins de mémoire possible
D'ailleurs ça me fait penser : disons que j'ai initialisé 2 matrices de même taille (A et B), et que je veux les multiplier pour ensuite stocker la réponse dans B. Je suppose que lors du calcul on a une troisième matrice temporaire (qui ne se retrouvera pas dans Mat Ans) ? |
|
|
Posté le 02-02-2022 à 08:39 | #
|
Pour la taille des listes/matrices c'est facile : nombre d'éléments × 12 octets pour les listes/matrices de réels, et × 24 octets pour celles de complexes. 60×60×12 = 43200. Mais c'est surtout 60×60 qui est grand x)
Pour la multiplication je ne sais pas exactement ce qui se passe mais tu n'as pas besoin de mémoire supplémentaire. Avec deux matrices de 50×50 (total 60 ko), le calcul passe. Peut-être qu'il alloue la copie dans le tas de l'interpréteur. |
|