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 :

Comment générer des nombres aléatoires entiers et bien déterminés dans Matlab ?


Sujet :

MATLAB

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Comment générer des nombres aléatoires entiers et bien déterminés dans Matlab ?
    Bonjour,

    j'aimerais savoir s'il y a moyen de générer aléatoirement sur Matlab les nombres 1, 3, 5, 7 par exemple.

    La fonction rand ne me satisfait pas à ce niveau. J'ai besoin de générer des nombres entiers (4 ou 5 au total) bien déterminés, pas nécessairement successifs. Le nombre déterminé ainsi aléatoirement servira de paramètre dans une fonction Matlab (fichier .M).

    Je ne veux pas qu'il incrémente bêtement le nombre précédent d'une certaine valeur pour passer au suivant, j'ai besoin que ce soit vraiment tout à fait aléatoire, mais qu'on s'en tienne à ce nombre limité de possibilités.

    Ça peut concerner des angles aussi (multiples impairs de 45° par exemple). J'ai besoin, pour un projet d'université, de créer un programme d'affichage générant des points de manière aléatoire, et dont un faible pourcentage seulement se déplace de manière cohérente, selon la direction 45° d'abord, puis selon la direction (45+90)° ou (45+180)° ou (45+270)°, mais de manière aléatoire. C'est-à-dire que ça ne me sert à rien qu'il passe à une direction dont l'angle est incrémenté régulièrement de 90° à chaque fois. Il faut que je puisse avoir un angle égal à 45° ou 3 fois 45° ou 5 fois 45° ou 7 fois 45°, mais pas nécessairement dans l'ordre.

    Voilà je pense avoir explicité suffisamment ma question !

    Merci d'avance pour vos éventuelles réponses...

  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 307
    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 307
    Points : 52 887
    Points
    52 887
    Par défaut
    Il te suffit d'appliquer la solution donnée dans la Comment obtenir un tirage aléatoire sur un nombre donné d'élément d'une matrice ? à ton vecteur prédéterminé [1 3 5 7] :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    V = [1 3 5 7];
    nV=numel(V);
     
    for n=1:5
       idx = randperm(nV);
       X(n) = V(idx(1));
    end
     
    X

  3. #3
    Membre du Club Avatar de NELLLY
    Inscrit en
    Mars 2007
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 94
    Points : 50
    Points
    50
    Par défaut
    salut
    pour un vecteur
    pour générer des valeurs entières:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    rai=a+ceil((b-a)*rand)

  4. #4
    Candidat au Club
    Inscrit en
    Mars 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Merci beaucoup
    Merci beaucoup à tous ceux qui me répondent, cela m'éclaire bien. Je suppose que si je ne veux qu'une seule valeur aléatoire entre 1, 3, 5 et 7, il me suffit de choisir un élément quelconque du vecteur X. Par exemple, X(1). J'ai testé et je pense que ça marche.
    Est-ce bien exact ? Si oui, je pense que mon problème est résolu, mais j'aimerais juste confirmation par sécurité.
    Merci bien

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

Discussions similaires

  1. Comment générer des nombres reéls aléatoires ?
    Par rzmadjid dans le forum Langage
    Réponses: 16
    Dernier message: 21/02/2008, 17h14
  2. Réponses: 4
    Dernier message: 12/09/2006, 16h42
  3. Générer des nombres aléatoires
    Par nbeligh dans le forum C++
    Réponses: 6
    Dernier message: 05/09/2006, 16h05
  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