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éneration d'une liste des valeurs selon des criteres


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2013
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mai 2013
    Messages : 26
    Points : 18
    Points
    18
    Par défaut Géneration d'une liste des valeurs selon des criteres
    Bonjour;
    Je cherche à générer une liste des valeurs selon les critères suivantes.

    Imaginons que j'ai un intervalle de [22:79].

    je choisis au random une valeur au random qui appartient à l'intervalle [22:79]:
    ex : 25 après je genere une liste de 5 valeurs qui suit avec un pas de 1 donc : 25,26, 27,28, 29,30.


    Mon problème est de générer cette liste qui devait appartenir tout le temps à cet intervalle [ 22,79].
    imaginons que la valeur random choisie est 79donc par defaut la liste générée est : 79 80 81 82 83
    Perso, je veux que la liste générée soit : 79, 22,23, 24,25 et ne pas celle d'avant vu que mon intervalle de valeurs est [ 22:79].

    Pouvez vous m'aider?

    Merci d'avance.

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Août 2014
    Messages
    1 295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2014
    Messages : 1 295
    Points : 2 385
    Points
    2 385
    Par défaut
    Bonjour,

    Cela doit être facilement faisable avec des boucles if dans un premier temps. Peux-tu nous montrer ce que tu as commencé à faire?

  3. #3
    Membre régulier Avatar de Alex3434
    Homme Profil pro
    Docteur / Ingénieur R&D
    Inscrit en
    Juillet 2014
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Docteur / Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2014
    Messages : 66
    Points : 76
    Points
    76
    Par défaut
    Tiens une version avec taille de la liste des valeurs réglable.

    Alex.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Debut_intervalle = 22;
    Fin_intervalle = 79;
    Nbre_valeurs = 5;    % Taille de la liste des valeurs
     
    Valeur_random = round(Debut_intervalle + (Fin_intervalle - Debut_intervalle).*rand(1,1));
     
    Tableau_valeurs = zeros(Nbre_valeurs,1);
    var = Valeur_random;
     
    for i = 1:Nbre_valeurs
     
        if var <= Fin_intervalle 
            Tableau_valeurs(i) = var;
            var = var + 1;
        else
            var = Debut_intervalle;
            Tableau_valeurs(i) = var;
            var = var + 1;
        end
     
    end

  4. #4
    Membre à l'essai
    Inscrit en
    Mai 2013
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mai 2013
    Messages : 26
    Points : 18
    Points
    18
    Par défaut
    Ça marche ! parfait!
    Mais je confronte un problème quand je veux générer un pattern des valeurs .

    Exemple A= [ 78 79 22 23 24 ]
    si je veux générer un pattern de 10 valeurs qui appartiennent à cet intervalle.
    Ça marche plus avec l'expression

    floor(A(1,1) + ( A(1,end)- A(1,1))*rand(1,10)).

    Avez-vous une idée?
    Je vous remercie.

  5. #5
    Membre régulier Avatar de Alex3434
    Homme Profil pro
    Docteur / Ingénieur R&D
    Inscrit en
    Juillet 2014
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Docteur / Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2014
    Messages : 66
    Points : 76
    Points
    76
    Par défaut
    Citation Envoyé par mdimagho Voir le message
    Mais je confronte un problème quand je veux générer un pattern des valeurs .
    Qu’appelez vous un pattern des valeurs ?

    Citation Envoyé par mdimagho Voir le message
    Exemple A= [ 78 79 22 23 24 ]
    si je veux générer un pattern de 10 valeurs qui appartiennent à cet intervalle.
    Ça marche plus avec l'expression

    floor(A(1,1) + ( A(1,end)- A(1,1))*rand(1,10)).
    Sans explication plus complètes sur cette formule je ne peux rien faire.

  6. #6
    Membre à l'essai
    Inscrit en
    Mai 2013
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mai 2013
    Messages : 26
    Points : 18
    Points
    18
    Par défaut
    Un pattern veut dire que je choisis au hasard x valeurs qui appartiennent à cet intervalle avec répétition.
    Soit mon intervalle
    A: [78 79 22 23 24 25]
    Un pattern exemple de 10 valeurs est de :
    78 78 22 23 79 25 25 25 23 22 et ça peut changer d'une simulation à l'autre.
    Quand je fait rand(1,10) ça va générer 10 valeurs entre 0 et 1.
    Apres je ne sais pas trop comment l'adapter à intervalle particulier come
    le dernier

    La formule que je l'ai donné ça marche pour un intervalle croissant. à pas 1 .
    A(1) c'est le premier valeur de l'intervalle A
    A(end) est le dernier valeur de l'intervalle A.

  7. #7
    Modérateur

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Août 2014
    Messages
    1 295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2014
    Messages : 1 295
    Points : 2 385
    Points
    2 385
    Par défaut
    toujours avec des if

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    x = rand(1);
    if x < (1/nbDeValeurs)
         A(1)  = first_value;
    elseif x < (2/nb_Valeurs)
         A(1) = second_value;
         % elseif ...
         % jusque < nb_Valeurs/nb_Valeurs
    end

  8. #8
    Membre à l'essai
    Inscrit en
    Mai 2013
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mai 2013
    Messages : 26
    Points : 18
    Points
    18
    Par défaut
    C'est quoi le variable Nb_valeurs?
    Est il le nombre de pattern souhaité?
    Je be comprends pas le jusqu'à.
    C'est in boucle répéter jusqu'à ?

  9. #9
    Modérateur

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Août 2014
    Messages
    1 295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2014
    Messages : 1 295
    Points : 2 385
    Points
    2 385
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    % nbDeValeurs est le nombre de valeurs dans notre tableau de valeurs
     
    x = rand(1);
    if x < (1/nbDeValeurs)
         A(1)  = first_value;
    elseif x < (2/nbDeValeurs)
         A(1) = second_value;
    elseif x < (3/nbDeValeurs)
         A(1) < third_value;
         % on continue les elsif jusqu'à atteindre la derniere valeur de notre tableau de valeur, c'est à dire jusqu'à ce que x < 1
    end

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/06/2012, 08h49
  2. Réponses: 13
    Dernier message: 22/07/2009, 14h36
  3. Réponses: 4
    Dernier message: 14/05/2009, 14h15
  4. Spliter une valeur selon des mots spécifiques
    Par witch dans le forum Langage
    Réponses: 15
    Dernier message: 03/10/2008, 11h10
  5. [MySQL] Liste deroulante et inscription des valeurs dans une table
    Par stefon dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 24/11/2006, 15h31

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