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

R Discussion :

Matrice de matrices


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 4
    Par défaut Matrice de matrices
    Bonjour,
    Comment créer une matrice de matrices ? Par exemple une matrice 6x6 formée des couples de nombres obtenus lors du lancer simultané de 2 dés.
    Bonne soirée à tous !

  2. #2
    Membre émérite

    Homme Profil pro
    Cyber Security & AI
    Inscrit en
    Février 2009
    Messages
    506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Cyber Security & AI

    Informations forums :
    Inscription : Février 2009
    Messages : 506
    Billets dans le blog
    2
    Par défaut
    Je ne suis pas sur que tu puisse créer des matrices de matrices sous R. Tu peux faire des matrices par contre de dimension 2n*2m ou des data frame. Le problème que tu vas rencontrer pour les data frame, c'est comment les remplir. Pour cela tu as les deux fonctions rbind et cbind.

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    m<-matrix(1:10, nrow = 5, ncol = 2)
    cbind(rbind(m,m), rbind(m,m))
    dans cette exemple tu obtiens une matrice m, et une data frame de type :
    mm
    mm

    Cela répond a ta demande ?

    Cordialement.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 4
    Par défaut
    Citation Envoyé par dev_ggy Voir le message
    Je ne suis pas sur que tu puisse créer des matrices de matrices sous R. Tu peux faire des matrices par contre de dimension 2n*2m ou des data frame. Le problème que tu vas rencontrer pour les data frame, c'est comment les remplir. Pour cela tu as les deux fonctions rbind et cbind.

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    m<-matrix(1:10, nrow = 5, ncol = 2)
    cbind(rbind(m,m), rbind(m,m))
    dans cette exemple tu obtiens une matrice m, et une data frame de type :
    mm
    mm

    Cela répond a ta demande ?

    Cordialement.
    Je ne crois pas que ça me fournisse une réponse. Je voudrais obtenir quelque chose comme ceci :
    [1 1][2 1][3 1][4 1][5 1][6 1]
    [1 2][2 2][3 2][4 2][5 2][6 2]
    [1 3][2 3][3 3][4 3][5 3][6 3]
    [1 4][2 4][3 4][4 4][5 4][6 4]
    [1 5][2 5][3 5][4 5][5 5][6 5]
    [1 6][2 6][3 6][4 6][5 6][6 6]
    Cordialement

  4. #4
    Membre chevronné
    Inscrit en
    Mars 2013
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 208
    Par défaut
    Salut,

    Pour avoir des couples commes élements de ta matrice le moyen le plus simple est à mon avis de transformer ces couples en caractère ou en facteur avec une saisie harmonisée pour pouvoir en reextraire facilement le couple en numérique.

    Avec l'exemple des dés, le couple peut très facilement être transposé de caractère à numerique puisque tu as toujours un chiffre, un blanc et un chiffre.

    Exemple de code:


    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
    de1<-1:6
    de2<-1:6
    data<-expand.grid(de1,de2)
    data<-data[!duplicated(data[,1:2]),]
     
     
     
    couple<-paste(data[,1],data[,2])
     
     
    #création de la matrice 6*6 des couples de dés possibles
    matrice<-matrix(couple,length(de1),length(de2))
     
    #acceder au premier element du couple de la matrice aux indices 2,3
    as.numeric(substr(matrice[2,3],1,1))


    Edit:
    bon je voullais pas t'orienter vers les listes parce que la syntaxe est plus galère je trouve, mais après reflexion si jamais tu as des elements plus compliqués que juste un couple, tu peux passer par des listes.

    Pour l'exemple des dés, tu créés une liste de listes de couples de ce genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    liste<-list(list(numeric(2)))
    Après c'est clairement plus galère, question de goût aussi.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 4
    Par défaut
    Citation Envoyé par Sengar Voir le message
    Salut,

    Pour avoir des couples commes élements de ta matrice le moyen le plus simple est à mon avis de transformer ces couples en caractère ou en facteur avec une saisie harmonisée pour pouvoir en reextraire facilement le couple en numérique.

    Avec l'exemple des dés, le couple peut très facilement être transposé de caractère à numerique puisque tu as toujours un chiffre, un blanc et un chiffre.

    Exemple de code:


    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
    de1<-1:6
    de2<-1:6
    data<-expand.grid(de1,de2)
    data<-data[!duplicated(data[,1:2]),]
     
     
     
    couple<-paste(data[,1],data[,2])
     
     
    #création de la matrice 6*6 des couples de dés possibles
    matrice<-matrix(couple,length(de1),length(de2))
     
    #acceder au premier element du couple de la matrice aux indices 2,3
    as.numeric(substr(matrice[2,3],1,1))


    Edit:
    bon je voullais pas t'orienter vers les listes parce que la syntaxe est plus galère je trouve, mais après reflexion si jamais tu as des elements plus compliqués que juste un couple, tu peux passer par des listes.

    Pour l'exemple des dés, tu créés une liste de listes de couples de ce genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    liste<-list(list(numeric(2)))
    Après c'est clairement plus galère, question de goût aussi.
    Merci beaucoup, c'est super ! La ligne data<-data[!duplicated(data[,1:2]),] est-elle vraiment utile ?

    Encore une question (je débute, alors si j'abuse pas besoin de répondre :-) :
    avec liste<-list(list(numeric(2))), j'obtiens pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >liste
    [[1]]
    [[1]][[1]]
    [1] 0 0
    ce qui me paraît indéchiffrable...
    et si je fais : m<-matrix(liste,6,6)alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    > m
         [,1]   [,2]   [,3]   [,4]   [,5]   [,6]  
    [1,] List,1 List,1 List,1 List,1 List,1 List,1
    [2,] List,1 List,1 List,1 List,1 List,1 List,1
    [3,] List,1 List,1 List,1 List,1 List,1 List,1
    [4,] List,1 List,1 List,1 List,1 List,1 List,1
    [5,] List,1 List,1 List,1 List,1 List,1 List,1
    [6,] List,1 List,1 List,1 List,1 List,1 List,1
    Ces 'List,1' me paraissent tomber d'on ne sait où !

    Encore merci !

  6. #6
    Membre chevronné
    Inscrit en
    Mars 2013
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 208
    Par défaut
    Citation Envoyé par jean964 Voir le message
    Merci beaucoup, c'est super ! La ligne
    data<-data[!duplicated(data[,1:2]),]
    est-elle vraiment utile ?
    C'est juste pour éviter d'avoir deux fois les couples de la diagonale de la matrice.
    Le point important qui repond à ton problème c'est surtout de concatener les deux chiffres de chaque couple avec un paste, le reste du code c'est juste pour reproduire la même matrice que toi ^^

    Encore une question (je débute, alors si j'abuse pas besoin de répondre :-) :
    avec liste<-list(list(numeric(2)))
    et si je fais : m<-matrix(liste,6,6)
    L'exemple que je donnais c'était juste pour montrer la tête de la structure si tu passais par des listes, je n'avais rien rempli dedans.

    En fait oublie ce que j'ai dis dans mon edit sur les listes, ca va juste t'embrouiller plus qu'autre chose et ca ne te sera pas d'une grande utilité pour ce que tu veux faire je pense.

Discussions similaires

  1. Matrice de Matrice dans un tableau de taille dynamique
    Par J_help dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 14/04/2010, 22h03
  2. Matrice de Matrice
    Par J_help dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 08/04/2010, 17h55
  3. [Débutant] Matrice de matrices
    Par Botman dans le forum MATLAB
    Réponses: 2
    Dernier message: 22/11/2007, 18h54
  4. Matrice de matrices ?
    Par joe-farka dans le forum MATLAB
    Réponses: 1
    Dernier message: 27/06/2007, 00h00
  5. [TP 7] Matrice dans matrice
    Par kedink dans le forum Turbo Pascal
    Réponses: 7
    Dernier message: 05/05/2007, 21h44

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