Rechercher : dans
Par :

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

Dernière réponse le 21 mar 2008 à 21:45:02 honono, le 21 mar 2008 à 19:33:20 
 Signaler ce message aux modérateurs

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.

Configuration: Windows XP
Internet Explorer 7.0

Meilleures réponses pour « générer les mêmes nombres aleatoires enMatlab » dans :
Générer des nombres aléatoires efficacement avec rand() Voir Générer des nombres aléatoires efficacement avec rand() Vous avez peut-être remarqué qu'en C, en utilisant la fonction rand() de la bibliothèque standard, vous obtenez des résultats décevants, trop souvent les mêmes. Prenons un exemple, vous...
Tableur - Les fonctions mathématiques VoirLes fonctions standards Méthode description ABS() Cette méthode renvoie la valeur absolue d'un nombre, il renvoie donc le nombre s'il est positif, son opposé (positif) s'il est négatif IMPAIR(valeur) Cette méthode renvoie la valeur...

1

Sacabouffe, le 21 mar 2008 à 21:35:57

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 Some folks are born made to wave the flag, ooo, they’re red, white and blue.
And when the band plays "Hail to the Chief", ooo, they point the cannon at you, y’all!

Répondre à Sacabouffe

2

honono, le 21 mar 2008 à 21:42:15

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?

Répondre à honono

3

 Sacabouffe, le 21 mar 2008 à 21:45:02

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. Some folks are born made to wave the flag, ooo, they’re red, white and blue.
And when the band plays "Hail to the Chief", ooo, they point the cannon at you, y’all!

Répondre à Sacabouffe
Collection CommentÇaMarche.net