Rechercher : dans
Par :

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

Dernière réponse le 6 mai 2009 à 15:30:53 popeye451, le 14 fév 2008 à 12:43:01 
 Signaler ce message aux modérateurs

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!

Meilleures réponses pour « matlab: générer une matrice de nb aléatoire » 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...
Représentation des courbes sous Matlab VoirLa fonction plot permet essentiellement de tracer des courbes sous Matlab. Dans cette astuce, nous allons essayer de détailler le fonctionnement de cette commande. Simple utilisation Vecteur Matrice Vecteur en fonction d'un autre Autres...
Concaténer les vecteurs ou les matrices sous Matlab VoirL'opération de concaténation des variables de Matlab consiste à regrouper ces variables dans une seule (vecteur ou matrice). Exemple : |2 3 4| X= |1 2 5| |0 2 7| Avec : |9 6 8| Y= |5 6 2| |3 2 1| Donne...
Manipulations élémentaires des tableaux sous MatLab VoirSommaire I. Stockage des tableaux II. L'indexation linéaire II.1. Accéder à un élément d'un tableau en utilisant l'indexation linéaire II.2. Passer d'une indexation à l'autre II.2.1. La fonction ind2sub II.2.2. La fonction sub2ind III. La...

1

Char Snipeur, le 14 fév 2008 à 14:32:21

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
Salutation ! Quand on sait pas, on touche pas !JBT
Char Snipeur

Répondre à Char Snipeur

2

popeye451, le 14 fév 2008 à 14:39:41

Super!

Merci beaucoup de ta rapidité!!!!!
je vais pouvoir avancer....

Répondre à popeye451

3

brouf, le 14 fév 2008 à 15:20:51

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.

Répondre à brouf

4

Char Snipeur, le 14 fév 2008 à 15:47:10

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.
Salutation ! Quand on sait pas, on touche pas !JBT
Char Snipeur

Répondre à Char Snipeur

5

brouf, le 14 fév 2008 à 16:01:37

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.

Répondre à brouf

6

Houyem, le 7 avr 2008 à 22:33:52

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;

Répondre à Houyem

7

Char Snipeur, le 8 avr 2008 à 08:42:11

Pour la matrice non caré : aucun souci en matlab, par contre pour tes histoire d'orthogonalité, je ne sais pas. Salutation ! avant je croyais, maintenant je suis fixé.Jésus Christ
Char Snipeur

Répondre à Char Snipeur

8

houyem49, le 8 avr 2008 à 21:48:58

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.

Répondre à houyem49

9

maya, le 20 avr 2008 à 23:11:00

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

Répondre à maya

10

FEFE, le 25 avr 2008 à 15:24:36

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.

Répondre à FEFE

11

rania, le 6 mai 2008 à 00:50:36

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

Répondre à rania

12

pepsi cola, le 6 mai 2009 à 02:39:11

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.

Répondre à pepsi cola

13

Char Snipeur, le 6 mai 2009 à 08:09:47

Utilise l'opérateur .* :
U1.*U2
En général, fonctionne avec tout les opérateurs : ./ .^ Salutation ! (il faut bien que vous compreniez que j'ai TOUJ­OURS raison)
Char Snipeur

Répondre à Char Snipeur

14

pepsi cola, le 6 mai 2009 à 11:50:17

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.

Répondre à pepsi cola

15

Char Snipeur, le 6 mai 2009 à 11:56:21

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. Salutation ! (il faut bien que vous compreniez que j'ai TOUJ­OURS raison)
Char Snipeur

Répondre à Char Snipeur

16

pepsi cola, le 6 mai 2009 à 14:35:21
  • +1

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"

Répondre à pepsi cola

17

 Char Snipeur, le 6 mai 2009 à 15:30:53

Je ne sais pas pour le tracé, ça dépend de ce que tu veux obtenir. Salutation ! (il faut bien que vous compreniez que j'ai TOUJ­OURS raison)
Char Snipeur

Répondre à Char Snipeur