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 valeurs entre [0,1]


Sujet :

MATLAB

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 229
    Points : 74
    Points
    74
    Par défaut générer des valeurs entre [0,1]
    Bonjour,

    Je voulais générer des valeurs entre [0,1]. J'ai utilisé rand dont ses valeurs sont dans l'intervalle [0,1[

    Comment peut-on inclure le 1 aléatoirement.

    Merci.

  2. #2
    Membre du Club Avatar de 123djimy
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Algérie

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2009
    Messages : 36
    Points : 41
    Points
    41

  3. #3
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 229
    Points : 74
    Points
    74
    Par défaut
    Citation Envoyé par 123djimy Voir le message
    j'ai essayé à plusieurs reprises mais ceci n'a pas généré le 1

  4. #4
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    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 302
    Points : 52 884
    Points
    52 884
    Par défaut
    Citation Envoyé par Christinita Voir le message
    J'ai utilisé rand dont ses valeurs sont dans l'intervalle [0,1[
    Je dirais plutôt ]0,1[

    Je crois qu'il n'y a pas de solution précise à ton problème.

    Pourrais-tu nous dire précisément ce que tu cherches à faire ?
    Quelle est la précision des valeurs que tu dois générer aléatoirement ?
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  5. #5
    Membre du Club Avatar de 123djimy
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Algérie

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2009
    Messages : 36
    Points : 41
    Points
    41
    Par défaut
    Citation Envoyé par Christinita Voir le message
    j'ai essayé à plusieurs reprises mais ceci n'a pas généré le 1
    Il y a une chance sur 10000 que tu tombe sur la valeur 1.0000

  6. #6
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2012
    Messages
    291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 291
    Points : 434
    Points
    434
    Par défaut @123djimy
    Citation Envoyé par 123djimy Voir le message
    Il y a une chance sur 10000 que tu tombe sur la valeur 1.0000
    En fait ce que tu dis est vrai si tu stock la valeur dans une variable sans avoir préciser le type. Dans ce cas matlab fait un cast vers un short (type par défaut à l'initialisation) et il arrondi à la valeur sup : 0.99995=1

    Si tu veux avoir une chance sur 10^7 tu déclare tes variable en long:
    format('long').


    En revanche si tu fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    while rand()~=1
    ;
    end
    Dans ce cas tu ne sortiras pas de la boucle car tu te trouveras dans le cas continu. En continu c'est impossible de tomber sur une valeur exacte (si tu remplace 1 par 0.5 ou autre dans la boucle tu ne tombera jamais dessus).

  7. #7
    Invité
    Invité(e)
    Par défaut
    Non, le type par défaut est double. Pour t'en convaincre, utilises la fonction CLASS.

    Les deux seuls types pouvant être retournés par la fonction RAND sont single et double:
    Citation Envoyé par doc rand
    r = rand(..., 'double') or r = rand(..., 'single') returns an array of uniform values of the specified class.
    Le code format('long') ne fixe pas le type des variables mais seulement la façon dont elles sont affichées.
    Voir la Pourquoi MATLAB affiche-t-il des valeurs tronquées ?

    Pour répondre à Christinita, une solution avec RANDI (Nb étant le nombre de valeurs différentes générées)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Nb = 1000;
    R = (randi(Nb)-1)/(Nb-1)
    Dernière modification par Invité ; 22/01/2012 à 01h53.

Discussions similaires

  1. [Lazarus] MD5 : comment comparer des valeurs entre elles ?
    Par MedGIR dans le forum Lazarus
    Réponses: 1
    Dernier message: 26/08/2009, 21h30
  2. Générer des valeurs et des caractères
    Par ALIAS200 dans le forum Débuter
    Réponses: 4
    Dernier message: 23/05/2008, 18h03
  3. Test des valeurs entrées
    Par jcaspar dans le forum VBA Word
    Réponses: 13
    Dernier message: 16/05/2008, 11h08
  4. Transmettre des valeurs entre WizardPage
    Par kennygunie dans le forum SWT/JFace
    Réponses: 1
    Dernier message: 13/05/2008, 18h11
  5. Permuter des valeurs entre deux listes
    Par doogybreton dans le forum IHM
    Réponses: 2
    Dernier message: 14/12/2007, 21h42

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