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 9427 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 9427 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 29 mai 2009 1 834
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 9427 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 29 mai 2009 1 834
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