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 :

Remplir aléatoirement une matrice de 0 avec un nombre défini de 1


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 15
    Par défaut Remplir aléatoirement une matrice de 0 avec un nombre défini de 1
    Bonjour,
    je souhaite créer une matrice 30x4 remplie aléatoirement de 0 et de 1, afin que le nombre total de 1 dans cette matrice soit égal à une valeur PRBA.
    j'ai créé le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    pos_PRBA=round(1.*rand(30,4)); 
    while sum(sum(pos_PRBA))~= PRBA,
        pos_PRBA=round(1.*rand(30,4));
    end
    Cependant, le problème, c'est que matlab met énormément de temps à trouver, et plante assez souvent.
    Comment pourrai-je améliorer ce code afin d'éviter des plantages intempestifs?

    Merci beaucoup d'avance.

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par défaut
    La aurait pu te donner un début de réponse : Comment obtenir un tirage aléatoire sur un nombre donné d'élément d'une matrice ?

    Et plus précisément :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    pos_PRBA =zeros(30,4);
    PRBA = 5;
     
    idx = randperm(30*4);
     
    pos_PRBA(idx(1:PRBA)) = 1

  3. #3
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 15
    Par défaut
    Merci beaucoup

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 04/02/2010, 14h44
  2. Lecture d'une matrice en .txt avec des guillemets
    Par dstevens dans le forum MATLAB
    Réponses: 2
    Dernier message: 06/11/2009, 16h35
  3. Subdiviser aléatoirement une matrice
    Par comrad85 dans le forum MATLAB
    Réponses: 12
    Dernier message: 19/10/2008, 22h34
  4. comment creer une matrice Walsh-Hadamard avec c++
    Par dev0077 dans le forum Eclipse C & C++
    Réponses: 1
    Dernier message: 03/10/2007, 11h06
  5. Réponses: 3
    Dernier message: 27/01/2007, 17h53

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