IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MATLAB Discussion :

générer des nombres aléatoires avec randn() dans une boucle [Débutant]


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 26
    Points : 20
    Points
    20
    Par défaut générer des nombres aléatoires avec randn() dans une boucle
    Bonjour,

    Je me permets de poster ce message car je n'ai pas réussi à trouver la solution pour le moment...
    Je m'explique : je possède un vecteur colonne nommé moy qui contient l'ensemble de mes moyennes (les moyennes de chaque ligne d'un autre fichier), ainsi qu'un vecteur s qui contient lui l'ensemble des écarts-types.

    Je souhaite, pour chaque ligne de mon fichier, générer 10 nombres aléatoires de moyenne moy et d'ecart type s : pour cela pas de souci je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    s(i)*randn(1,10)+moy(i);
    Cependant, je veux effectuer cela dans une boucle pour générer les 10 nombres pour chaque ligne sachant que chaque ligne à sa propre moyenne et son propre écart type.
    J'ai donc essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for i=1:size(V,1) 
    	nb(i) = s(i)*randn(1,10)+moy(i);
    end
    Cela ne fonctionne pas étant donné qu'on ne peut mettre une matrice dans une seule case; seulement si j'enlève le i, je me retrouve avec seulement les 10 nombres de la dernière ligne.
    Je ne vois donc pas comment je peux faire...

    J'espère avoir été claire, merci d'avance !

  2. #2
    Membre actif
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2013
    Messages : 189
    Points : 242
    Points
    242
    Par défaut
    salut,
    il faut que tu utilises ":" pour dire que tu remplis toute la ligne.

    essaye

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for i=1:size(V,1) 
    	nb(i,:) = s(i)*randn(1,10)+moy(i);
    end
    tu auras une matrice de Size(V,1) lignes et 10 colonnes, chaque ligne "i" correspondant à ton écart type et ta moyenne "i"

    sinon autre chose, il vaut mieux préallouer ta variable, c'est une bonne habitude à prendre quand tu travailles avec Matlab
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    nb = zeros(size(V,1),10);
    for i=1:size(V,1) 
    	nb(i,:) = s(i)*randn(1,10)+moy(i);
    end

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 26
    Points : 20
    Points
    20
    Par défaut
    Merci beaucoup pour votre aide très rapide, c'est exactement ce qu'il me fallait!
    Je note le conseil

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 20/02/2012, 09h45
  2. Réponses: 1
    Dernier message: 19/05/2011, 12h48
  3. Réponses: 3
    Dernier message: 08/03/2008, 11h01
  4. Algo pour générer des nombres aléatoires
    Par Admin dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 12/06/2006, 09h06
  5. Réponses: 2
    Dernier message: 16/05/2006, 17h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo