Scilab et complications
Résolu
sijesuislac'estquecavapas
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
Sacabouffe Messages postés 9427 Date d'inscription Statut Membre Dernière intervention -
Sacabouffe Messages postés 9427 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Triste bonjour à tous parce que désespérée mais bonjour kan même en espérant que kelkun va pouvoir m'aider...
voici mon pb:
sous scilab,
je veux construire R réalisations (R est fixe) de vecteurs de tailles N différentes .
Je ne veux pas utiliser une matrice de type R lignes N colonnes en prenant le plus grand de mes N car cela me stocke beaucoup trop de zéros pour combler les valeurs manquantes, ce qui me pique de la place inutilement.
et j'ai besoin du max de place!!!! car je veux travailler avec des R=1000 et des Z pouvant être compris entre 2 et 10000.
Je pensais pouvoir faire ça avec une matrice de type P=(1,n,r)
r allant de 1 à R
et n varie de 1 à 10000
Mais le méchant scilab il veut pas :
si je rentre par exemple pr r=1 N=4 (avec comme valeur que des 9 )
P(1,:,1)= 9 9 9 9
puis que je fais pr r=2 N=8
P(1,:,2)= 9 9 9 9 9 9 9 9 OK
MAIS P(1,:,1) devient 9 9 9 9 0 0 0 0 PAS OK DUTOUT
je voulais:
P(1,:,1)= 9 9 9 9
P(1,:,2)= 9 9 9 9 9 9 9 9
P(1,:,3)= 9 9 9 9 9 9
P(1,:,4)= 9 9 9 9 9 9 9 9 9 9 9 9 9
P(1,:,5)= 9
etc...
Voila si quelqu'un peut m'aider ce serait magnifique voir de toute beauté parce ke la moi je sais pas.
alors merci d'avance a tous!!!
Triste bonjour à tous parce que désespérée mais bonjour kan même en espérant que kelkun va pouvoir m'aider...
voici mon pb:
sous scilab,
je veux construire R réalisations (R est fixe) de vecteurs de tailles N différentes .
Je ne veux pas utiliser une matrice de type R lignes N colonnes en prenant le plus grand de mes N car cela me stocke beaucoup trop de zéros pour combler les valeurs manquantes, ce qui me pique de la place inutilement.
et j'ai besoin du max de place!!!! car je veux travailler avec des R=1000 et des Z pouvant être compris entre 2 et 10000.
Je pensais pouvoir faire ça avec une matrice de type P=(1,n,r)
r allant de 1 à R
et n varie de 1 à 10000
Mais le méchant scilab il veut pas :
si je rentre par exemple pr r=1 N=4 (avec comme valeur que des 9 )
P(1,:,1)= 9 9 9 9
puis que je fais pr r=2 N=8
P(1,:,2)= 9 9 9 9 9 9 9 9 OK
MAIS P(1,:,1) devient 9 9 9 9 0 0 0 0 PAS OK DUTOUT
je voulais:
P(1,:,1)= 9 9 9 9
P(1,:,2)= 9 9 9 9 9 9 9 9
P(1,:,3)= 9 9 9 9 9 9
P(1,:,4)= 9 9 9 9 9 9 9 9 9 9 9 9 9
P(1,:,5)= 9
etc...
Voila si quelqu'un peut m'aider ce serait magnifique voir de toute beauté parce ke la moi je sais pas.
alors merci d'avance a tous!!!
A voir également:
- Scilab et complications
- Scilab - Télécharger - Édition & Programmation
1 réponse
Salut
Ce que t'essaies de faire pourra jamais marcher de cette manière. Quel que soit le nombre de dimensions d'un tableau, tes lignes, tes colonnes, tes pages, etc... ont toujours la même taille. Là c'est ni plus ni moins une matrice que t'essaies de définir, certes, il y 3 dimensions mais la première ne sert pas. Ici, de la façon dont tu t'y prends, tu cherches à définir une matrice dont la taille de chaque colonne changerait, c'est tout à fait normal que Scilab patche par des zéros pour garder des tailles de colonnes constantes.
Ton truc, tu peux le faire en utilisant des objets de type cellule.
Du coup, ce que je te conseillerais plutôt, c'est de stocker tout ça dans une matrice de R lignes et Nmax colonnes. Et là... t'es en train de te dire...
Mais il complètement idiot celui-là ! Il sait pas lire ou quoi ? J'ai écrit que je voulais pas faire comme ça !
Viiii ! Mais attends !
Tu stockes ta matrice en sparse, c'est-à-dire que tu stockes en mémoire que les valeurs non nulles.
Merci d'arrêter les kan, kelkun, ke, c'est détestable à lire.
CCM - Charte - Conseils d'écriture d'un message
CCM - Charte - Respect d'autrui
Ce que t'essaies de faire pourra jamais marcher de cette manière. Quel que soit le nombre de dimensions d'un tableau, tes lignes, tes colonnes, tes pages, etc... ont toujours la même taille. Là c'est ni plus ni moins une matrice que t'essaies de définir, certes, il y 3 dimensions mais la première ne sert pas. Ici, de la façon dont tu t'y prends, tu cherches à définir une matrice dont la taille de chaque colonne changerait, c'est tout à fait normal que Scilab patche par des zéros pour garder des tailles de colonnes constantes.
Ton truc, tu peux le faire en utilisant des objets de type cellule.
R=2; P=cell(R,1); P(1,1).entries=[9 9 9 9]; P(2,1).entries=[9 9 9 9 9 9 9 9];Et voilà...
-->P P = ![9,9,9,9] ! ! ! ![9,9,9,9,9,9,9,9] ! -->P(1,1).entries ans = 9. 9. 9. 9. -->P(2,1).entries ans = 9. 9. 9. 9. 9. 9. 9. 9.Mais je suis pas sûr que le stockage en cellules soit quelque chose de top moumoute au niveau mémoire, ce serait à vérifier... Si ça se trouve c'est même pire que de stocker la matrices avec tous ses zéros :-D
Du coup, ce que je te conseillerais plutôt, c'est de stocker tout ça dans une matrice de R lignes et Nmax colonnes. Et là... t'es en train de te dire...
Mais il complètement idiot celui-là ! Il sait pas lire ou quoi ? J'ai écrit que je voulais pas faire comme ça !
Viiii ! Mais attends !
Tu stockes ta matrice en sparse, c'est-à-dire que tu stockes en mémoire que les valeurs non nulles.
R=2; Nmax=8; P=sparse([],[],[R Nmax]); P(1,1:4)=[9 9 9 9]; P(2,1:8)=[9 9 9 9 9 9 9 9];Hop ! C'est bon !
-->P P = ( 2, 8) sparse matrix ( 1, 1) 9. ( 1, 2) 9. ( 1, 3) 9. ( 1, 4) 9. ( 2, 1) 9. ( 2, 2) 9. ( 2, 3) 9. ( 2, 4) 9. ( 2, 5) 9. ( 2, 6) 9. ( 2, 7) 9. ( 2, 8) 9.Et pour terminer...
Merci d'arrêter les kan, kelkun, ke, c'est détestable à lire.
CCM - Charte - Conseils d'écriture d'un message
Il est également demandé aux utilisateurs de s'appliquer lors de la rédaction de leur message en évitant au possible les abréviations (type SMS) et en vérifiant l'orthographe.Merci de pas poster de doublon.
CCM - Charte - Respect d'autrui
ne pas poster votre message plusieurs fois sur le forumBonne nuit