[octave/matlab] fnction qui retourne un vecte
Fermé
Swiss Knight
Messages postés
1956
Date d'inscription
samedi 22 novembre 2008
Statut
Membre
Dernière intervention
27 juillet 2016
-
23 mai 2011 à 16:44
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 7 juin 2011 à 14:08
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 7 juin 2011 à 14:08
A voir également:
- [octave/matlab] fnction qui retourne un vecte
- Ecran retourne - Guide
- Octave logiciel - Télécharger - Édition & Programmation
- Video insta en marchant telephone qui se retourne - Guide
- Article retourné par les douanes dhgate - Forum Vos droits sur internet
- Méthode de gauss matlab ✓ - Forum Matlab
2 réponses
damlegone32
Messages postés
74
Date d'inscription
lundi 11 septembre 2006
Statut
Membre
Dernière intervention
31 mai 2011
29
Modifié par damlegone32 le 31/05/2011 à 22:34
Modifié par damlegone32 le 31/05/2011 à 22:34
Bonjour,
Tu peux faire:
Mais si ce que tu voulais faire c'était générer des nombres aléatoires suivant une loi normale de moyenne moy et d'écart-type sigma alors la syntaxe est:
Tu peux faire:
vecteur = randn(N,1) %loi normale d'écart-type 1 et de moyenne nulleou
vecteur = rand(N,1) %loi uniforme entre 0 et 1et forcer les moyenne et écart-type aux valeurs désirées
vecteur = vecteur/std(vecteur)*ecart_type_voulu %on force l'écart-type à la valeur désirée vecteur = vecteur-mean(vecteur)+moyenne_voulue %on force la moyenne à la valeur désirée
Mais si ce que tu voulais faire c'était générer des nombres aléatoires suivant une loi normale de moyenne moy et d'écart-type sigma alors la syntaxe est:
vecteur = moy+sigma*randn(N,1)
Swiss Knight
Messages postés
1956
Date d'inscription
samedi 22 novembre 2008
Statut
Membre
Dernière intervention
27 juillet 2016
110
6 juin 2011 à 22:07
6 juin 2011 à 22:07
Salut et merci beaucoup de ta réponse !
tu m'as fait découvrir deux fonctions très utiles et ta solution fonctionne à merveille...pour une très grande quantité de nombres.
Par contre, curieusement (ou pas) pour une dizaine de nombre, c'est très approximatif... je pense que c'est "normal" mais c'est bizarre quand même...
Tu saurais l'expliquer ?
tu m'as fait découvrir deux fonctions très utiles et ta solution fonctionne à merveille...pour une très grande quantité de nombres.
Par contre, curieusement (ou pas) pour une dizaine de nombre, c'est très approximatif... je pense que c'est "normal" mais c'est bizarre quand même...
Tu saurais l'expliquer ?
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
7 juin 2011 à 09:05
7 juin 2011 à 09:05
soit plus clair, donne un exemple.
Swiss Knight
Messages postés
1956
Date d'inscription
samedi 22 novembre 2008
Statut
Membre
Dernière intervention
27 juillet 2016
110
7 juin 2011 à 13:18
7 juin 2011 à 13:18
vecteur = 10+2*randn(10,1)
mean(vecteur) n'est pas exactement égal à 10
std(vecteur) n'est pas exactement égal à 2
mais si je prends
vecteur = 10+2*randn(10000,1)
alors on s'approche tellement de 10 et 2 que ça finit par tomber dessus aux arrondis près.
mean(vecteur) n'est pas exactement égal à 10
std(vecteur) n'est pas exactement égal à 2
mais si je prends
vecteur = 10+2*randn(10000,1)
alors on s'approche tellement de 10 et 2 que ça finit par tomber dessus aux arrondis près.
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
7 juin 2011 à 14:08
7 juin 2011 à 14:08
ba oui, c'est on ne peut plus logique.
une variable aléatoire ne correspond à ses caractéristiques que dans la limite des grand nombre. Et encore, elle ne fait que tendre. 10 est loin d'être un grand nombre. Si tu veux le résultat exacte de ce que tu attends, la méthode n'est pas bonne (mais je ne vois pas ce que tu cherches à faire au final). Si tu veux le résultat exacte pour toutes les tailles de vecteur, il faut faire un truc du genre :
vec_tmp=rand(N,1);
vecteur=moy-mean(vec_tmp)+(dev/std(vec_tmp))*vec_tmp;
(à vérifier et corriger pour l'écart type, je ne suis pas sur du tout).
une variable aléatoire ne correspond à ses caractéristiques que dans la limite des grand nombre. Et encore, elle ne fait que tendre. 10 est loin d'être un grand nombre. Si tu veux le résultat exacte de ce que tu attends, la méthode n'est pas bonne (mais je ne vois pas ce que tu cherches à faire au final). Si tu veux le résultat exacte pour toutes les tailles de vecteur, il faut faire un truc du genre :
vec_tmp=rand(N,1);
vecteur=moy-mean(vec_tmp)+(dev/std(vec_tmp))*vec_tmp;
(à vérifier et corriger pour l'écart type, je ne suis pas sur du tout).