Matlab: générer une matrice de nb aléatoire [Fermé]

Messages postés
2
Date d'inscription
jeudi 14 février 2008
Statut
Membre
Dernière intervention
14 février 2008
- - Dernière réponse : Jay_2908
Messages postés
2
Date d'inscription
jeudi 13 juin 2019
Statut
Membre
Dernière intervention
13 juin 2019
- 13 juin 2019 à 13:57
Bonjour,

Débutant sur matlab, je cherche a créer une matrice de nb aléatoire (10 lignes 1 colonne) a partir d'une moyenne et d'un écart type.

J'ai fait les aides help rand, j'a rien trouvé de correct la dedans.....

Quelqu'un peut il m'aider?
Merci d'avance!
Afficher la suite 

16 réponses

Meilleure réponse
Messages postés
9713
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
13 septembre 2019
1091
7
Merci
Pour un écart type et une moyenne, il faut utiliser une loi normale de nombre aléatoire, donc "randn()"
ensuite, si ton écart type est s, et ta moyenne X, il suffit de faire :
M=s*randn(10,1)+X

Dire « Merci » 7

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 63168 internautes nous ont dit merci ce mois-ci

Jay_2908
Messages postés
2
Date d'inscription
jeudi 13 juin 2019
Statut
Membre
Dernière intervention
13 juin 2019
-
Je viens de compiler ton code et matlab me sort error using *
Messages postés
3
Date d'inscription
mercredi 6 mai 2009
Statut
Membre
Dernière intervention
6 mai 2009
1
2
Merci
ce que je veux faire c la simulation du produit de plusieurs variables aléatoires..voir 10 par exemple , en sachant que mes variables aléatoires sont des vecteurs.
effectivement tu as raison, je peux simuler une matrice de 10 colonnes, puis je fais le produit des 10 colonnes pour avoir un seul vecteur a la fin, bref....
tu as une idée de comment faire une représentation graphique de cette simulation de loi normale ??
etant donné qu'il existent des fonctions multiples sur matlab ?? chacune avec des paramètres spécifiques ...plot, normplot,plotbox....
"merci encore"
Messages postés
1
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
8 avril 2008
1
1
Merci
Merci à tous, en fait j'ai trouvé comment générer une matrice orthogonale,on entre une matrice A aléatoirement et on utilise la commande "qr" qui écrit cette matrice sous forme de produit d'une matrice orthogonale Q et une matrice triangulaire R:
>> [Q,R]=qr(A);
On peut alors récupérer Q la matrice orthogonale.
0
Merci
je pense que c'est un peu plus compliqué que ça :
avec la formule : M=s*randn(10,1)+X
ta matrice sera composée de nombres aléatoires compris entre X-s et X+s.
Et dans ce cas, la moyenne sera bien X mais l'écart-type ne sera surement pas s.
Il faut chercher un tout petit peu plus loin je pense. Mais vous etes sur la bonne voie...
B.
Messages postés
9713
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
13 septembre 2019
1091
0
Merci
j'ai fait un randn pour tester, et le valeurs ne sont pas comprises entre -1 et +1. Bon, pour l'écart type, en effet, je ne suis plus très sur...
ça doit resembler, mais il faut peut être des facteurs correctifs. Déjà, je suppose qu'il soit de 1 pour randn (ce qui n'est pas évident).
pour trouver la solution, regarde là:
http://fr.wikipedia.org/wiki/Fonction_gaussienne
Et fait un changement de repère x->X×s
à mon avis, la simple multiplication suffit.
0
Merci
dfésolé de t'avoir induit en erreur.
c'est moi qui ai mal lu.

j'ai lu RAND là où il était écrit RANDN.
et RANDN te renvoie bien une distributuion normale de moyenne 0 et écart-type 1. donc s*randn donne une distribution normale d'écart-type s.
et donc X + s*randn(10,1) te donne un vecteur de 10 éléments de moyenne X et d'écart-type s

Autant pour moi, ça m'apprendra à faire aller ma grrande gueule

B.
0
Merci
Bonjour;

voilà, je me suis trouvé fâce à un problème qui est: générer une matrice quasi-orthogonale pour l'utiliser dans Matlab;
le problème c'est que je connais les matrices orthogonales mais quasi-orthogonale est ce que ça veut dire que les vecteurs colonnes ne sont pas de normes 1 ? et puis j'ai besoin d'une matrice non carrée, par exemple 3 lignes 4 colonnes, est ce que c'est faisable? je n'arrive pas à trouver un exemple

merci beaucoup;
Messages postés
9713
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
13 septembre 2019
1091
0
Merci
pour la matrice non caré : aucun souci en matlab, par contre pour tes histoire d'orthogonalité, je ne sais pas.
0
Merci
slt a tt, je suis débutante en matlab é g bezion de l'instruction ki m permet de tester l'aurthogonalité entre 2 matrice données..
merci de votre aide
bonjour,

on ne parle pas de l'orthogonalité de deux matrices mais bien d'une matrice : une matrice A est dite orthogonale si At * A = I où At est la transposée de A et I la matrice identité.
sous matlab, il suffit donc de réaliser le produit At * A (il existe une commande simple pour la transposition que vous trouverez aisément dans l'aide) et de vérifier s'il est égal à l'unité.
une caractéristique qui découle de la définition est que A-1 = At où A-1 est l'inverse de A. vous pouvez aussi vérifier cette égalité. sous matlab, la commande pour l'inverse est inv(A) il me semble.

F.
0
Merci
salut


Je voudrais bien savoir comment peut on déterminer la matice orhtogonale Aorth d'une matrice A donnée pour vérifier la relation A'*Aorth=0 sachant que A' : est la matrice tranposée de A


Merci
Messages postés
3
Date d'inscription
mercredi 6 mai 2009
Statut
Membre
Dernière intervention
6 mai 2009
1
0
Merci
Bonjour,
j'utilise matlab pour la simulation d'une loi normal;
le travail qui a été demandé est de simuler le produit de 2 loi normal centrées réduites, avec N=100 (pour permettre de faire une représentation graphique).
j'ai trouvé la fonction normrnd(MU,SIGMA,m,n) , si je mets m=100 et n=1 j'obtiens un vecteur U1 de 100 valeurs chacune suit une loi normal. je fais de meme pour U2
le probleme c que je peux pas faire le produit de U1*U2 car le produit de de matrice doit respecter la dimension (m,n)*(n,m) moi j'ai (100,1)*(100*1) ca marchera pas.
et si je fais (100,1)*(1*100) j'aurai une matrice de (100*100)
bref... je dois trouver un moyen de multiplier chaque composante de u1 avec la composante de u2 c'est a dire U1[i]*u2[i] pour obtenir a la fin un vecteur de 100 composante et le representer graphiquement.

si vous avez une solution je vous remercie infiniment.
Messages postés
9713
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
13 septembre 2019
1091
0
Merci
utilise l'opérateur .* :
U1.*U2
En général, fonctionne avec tout les opérateurs : ./ .^
Messages postés
9713
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
13 septembre 2019
1091
0
Merci
Je n'ai pas tout compris à ton histoire de généralisation.
Je pense que sinon, tu peux stocker tes vecteurs dans une seul matrice pour généraliser.
Messages postés
9713
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
13 septembre 2019
1091
0
Merci
Je ne sais pas pour le tracé, ça dépend de ce que tu veux obtenir.
Messages postés
2
Date d'inscription
jeudi 14 février 2008
Statut
Membre
Dernière intervention
14 février 2008
-1
Merci
Super!

Merci beaucoup de ta rapidité!!!!!
je vais pouvoir avancer....
Messages postés
3
Date d'inscription
mercredi 6 mai 2009
Statut
Membre
Dernière intervention
6 mai 2009
1
-1
Merci
salut,
ca marche !!! merci bcp...j'allais faire une boucle imbriqué XD
g encore une autre question : si je voudrai générer n vecteur pour généraliser, ya-t-il un moyen d'affecter a n une valeur différente a chaque fois comme entrée ?? ou la seule possibilité est de les générer manuellement cad U1,U2....Un ??
je voulais faire une représentation graphique pour ce que g fait tout à l'heure , mais j'ai trouvé plusieurs fonction, normplot...et plusieurs fonction de plot.. je sais pas laquel utiliser ??

je vous remercie.
Bonjour,
svp j'ai besoin de votre aide,
comment généré un vecteur ( de 20 élément par exemple) de variable aléatoire suivant une loi donnée, par exemple une loi normale. La contrainte que j'ai est que ma variable varie entre 0 et 1.
Pour une loi normal vous avez 'randn' et de plus elle génère des nombres centré, donc moyenne null et une variance de 1, vous n'avez qu'a faire Vect=randn(20,1), si vous désiré avoir des valeur comprise entre des valeur précise vous pouvez metre Vect=Mean+sqrt(Var)*randn(20,1) avec mean est la moyenne et Var est la variance,.
pour une loi uniforme faire : Vect=rand(20,1)..
j'espere que cela poura vous aidez faffa..
salut
svp j'ai besoin de votre aide,
comment généré un vecteur de variable aléatoire pour une quantification vectorielle algébrique d'une image déjà décomposer en dwt en cellule
pour une compression optimale
bonsoir
svp jai besoin de votre aide,
comment generer une variable aléatoire eyant la densité de probabilite uniforme pour 0<X<1 et nulle ailleurs comment on écrit le programme sous matlab??
jisisv
Messages postés
3661
Date d'inscription
dimanche 18 mars 2001
Statut
Modérateur
Dernière intervention
15 janvier 2017
844 > dalila -
Cest ce que fait rand() , non ?