Générer les mêmes nombres aleatoires enMatlab

Résolu/Fermé
honono
Messages postés
2
Date d'inscription
vendredi 21 mars 2008
Statut
Membre
Dernière intervention
21 mars 2008
- 21 mars 2008 à 19:33
Sacabouffe
Messages postés
9418
Date d'inscription
dimanche 19 août 2007
Statut
Membre
Dernière intervention
29 mai 2009
- 21 mars 2008 à 21:45
Bonjour,

Je dois faire des simulations et pour cela je dois générer 500 vecteurs aléatoires en faisant une boucle. Mais je voudrais qu'à chaque fois que je relance mon programme, celui-ci me génère les mêmes vecteurs aléatoires.
Ma promotrice m'a dit que ces nombres aléatoires se trouvent en fait dans une matrice prédéfinie et qu'ils ont chacun un "numéro" dans cette matrice. Elle m'a aussi dit qu'en R cette commande correspondait à set.seed(i) mais comment faire en matlab?

Merci d'avance our vos réponses.

3 réponses

Sacabouffe
Messages postés
9418
Date d'inscription
dimanche 19 août 2007
Statut
Membre
Dernière intervention
29 mai 2009
1 865
21 mars 2008 à 21:35
Salut
Je comprends pas pourquoi tu génères pas 1 seul vecteur et que t'utilises pas 500 fois le même...
Sinon pour répondre à ta question, t'initialises l'état de la méthode utilisée pour le rand à la même valeur à chaque fois que tu fais appel à elle. Par exemple si tu utilises la méthode seed tu mets rand('seed',0) avant chaque appel à la fonction rand.
A plus
0
honono
Messages postés
2
Date d'inscription
vendredi 21 mars 2008
Statut
Membre
Dernière intervention
21 mars 2008

21 mars 2008 à 21:42
Bonsoir,

En fait je dois générer 500 vecteurs aléatoires différents mais si je ferme matlab et que je le réouvre, je dois avoir les mêmes 500 vecteurs aléatoires dans mon programme.

Donc si je comprends bien, si je mets rand('seed',0) avant ma boucle, je générai les mêmes vecteurs?
0
Sacabouffe
Messages postés
9418
Date d'inscription
dimanche 19 août 2007
Statut
Membre
Dernière intervention
29 mai 2009
1 865
21 mars 2008 à 21:45
Dans la boucle, juste avant l'appel à la fonction qui génère ton vecteur.

Sinon tu peux enregistrer 1 vecteur dans un fichier et le lire avec Matlab. Comme ça même si tu fermes, ton vecteur sera toujours là et tu pourras le réutiliser.
0