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 :

permutation de valeurs aléatoires sous matlab [Débutant]


Sujet :

MATLAB

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3
    Points : 3
    Points
    3
    Par défaut permutation de valeurs aléatoires sous matlab
    Bonjour,

    Je cherche a créer une matrice 5x5 (appelons la M) constituée de valeurs aléatoires entre 0 et 1. Jusque la tout va bien j'utilise la fonction "rand" et je n'ai aucun problème. Mon souci c'est que je souhaite créer une nouvelle matrice de même dimensions que M contenant les même valeurs aléatoires mais à des places différentes dans la matrice.

    J'ai trouvé sur l'aide de matlab la fonction randperm qui permet de permuter des valeurs aléatoire sauf que elle ne fonctionne que pour des vecteurs (je peux me débrouiller avec ça) mais le problème c'est que je ne peux pas lui dire combien de valeurs je veux et dans quel intervalle.

    par exemple si j'écris sous matlab :
    randperm(4)
    il donne
    ans =
    3 2 4 1

    ce qui ne me conviens pas : je veux 4 valeurs comprises entre 0 et 1.....


    Donc en resume je voudrais faire un randperm avec 100 valeurs admettons comprises entre 0 et 1

    Si quelqu'un a une idée aidez moi je cherche depuis des jours et je trouve pas comment régler mon problème et j'en ai besoin pour mon rapport de stage de master ....

    Merci d'avance !!!!!

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Tu souhaites bien...
    Citation Envoyé par armelle_vias Voir le message
    créer une nouvelle matrice de même dimensions que M contenant les mêmes valeurs aléatoires mais à des places différentes dans la matrice.
    ?
    La fin n'est plus très claire à ce sujet...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    M = rand(5)
    N = reshape(M( randperm(numel(M)) ), size(M))

  3. #3
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Oui c'est exactement cela que je souhaite faire. merci de ta réponse je la teste dès que j'ai un moment !!

  4. #4
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci beaucoup ça fonctionne parfaitement!!! j'aurais juste une question : A quoi sers exactement la fonction numel j'ai regardé sur l'aide mais j'ai l'impression que c'est finalement pratiquement la même chose que size non ?

  5. #5
    Membre éprouvé
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Points : 1 277
    Points
    1 277
    Par défaut
    size retourne un vecteur d'entier (les taille de chaque dimension), ce qui correspond à l'indexation matricielle classique
    x(i1,i2,...). numel retourne le produit des éléments de size, c'est à dire le nombre d'élément total, qui correspond à l'indexation linéaire x(k).

    NB: même dans l'expression x(k), x a plus d'une dimension. Mathématiquement, x(k) := vec(x)(k), ou vec concatène les colonnes de x les unes sous les autres (isomorphisme canonique entre (R^N1)^N2 - espace de matrice - et R^(N1*N2) - espace de vecteurs )

  6. #6
    Invité
    Invité(e)
    Par défaut
    Je te laisse regarder ce que retourne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >> M = rand(5);
    >> size(M)
    >> numel(M)

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

Discussions similaires

  1. algorithme d'occurrence des valeurs dans matrice sous matlab
    Par kallelbalsam dans le forum MATLAB
    Réponses: 4
    Dernier message: 18/04/2014, 16h11
  2. Réponses: 7
    Dernier message: 08/02/2010, 22h02
  3. matrice aléatoire sous matlab
    Par ouareina dans le forum MATLAB
    Réponses: 2
    Dernier message: 07/02/2010, 19h33
  4. [CR] transmission valeur Etat/sous etat
    Par Antichoc dans le forum Formules
    Réponses: 2
    Dernier message: 21/11/2003, 11h23

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