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 :

Division matrice en sous matrices [Débutant]


Sujet :

MATLAB

  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Division matrice en sous matrices
    Bonjour,

    Voici mon problème:

    J'ai une matrice M à n lignes et 4 colonnes,

    par exemple, M:

    1 1 2 3
    1 2 3 4
    1 3 4 5
    2 1 2 3
    2 2 3 4
    3 1 2 3
    ...

    Je souhaiterais placer dans une matrice toutes les lignes ayant la même valeur en 1ère position. Je voudrais obtenir ceci:

    M(1)=
    1 1 2 3
    1 2 3 4
    1 3 4 5

    M(2)=
    2 1 2 3
    2 2 3 4

    etc...

    Mon principal problème vient du fait que je n'arrive pas à avoir M(k)="matrice" (k est un entier), MATLAB dit "the number of elements in k and "matrice" must be the same"...je suis bloqué!

    merci

  2. #2
    Membre actif
    Inscrit en
    Novembre 2006
    Messages
    236
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 236
    Points : 213
    Points
    213
    Par défaut
    Tu peux utiliser des cellules :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    newM{1} =
    1 1 2 3
    1 2 3 4
    1 3 4 5
    au lieu de ton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    newM(1) =
    1 1 2 3
    1 2 3 4
    1 3 4 5
    MATLAB R2008a - Windows XP 32 bit et Windows Vista 64 bit

  3. #3
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Effectivement tu peux utiliser les cellules, mais quel est l'intérêt de multiplier le nombre de variables alors que tu peux accéder facilement à tes sous-matrices avec l'indexage logique ?

    Règles du Forum

    Adepte de la maïeutique

  4. #4
    Futur Membre du Club
    Inscrit en
    Février 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    D'accord merci beaucoup cela va déjà mieux;

    Mais le problème est que je ne connais pas la valeur exacte que prend la 1ère colonne et je voudrais en fait une matrice pour chaque valeur prise en colonne 1.

  5. #5
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Citation Envoyé par ToPra Voir le message
    je voudrais en fait une matrice pour chaque valeur prise en colonne 1.
    Encore une fois : pourquoi ?

    Tu peux récupérer facilement la liste des nombres de ta 1ère colonne avec UNIQUE.
    Ensuite je ne sais pas ce que tu veux faire avec ces sous-matrices, mais si tu veux boucler sur chacune d'entre elles, tu boucles sur la liste obtenue avec UNIQUE.
    Règles du Forum

    Adepte de la maïeutique

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 53
    Points : 38
    Points
    38
    Par défaut
    Citation Envoyé par ToPra Voir le message
    Bonjour,
    je n'arrive pas à avoir M(k)="matrice" (k est un entier), MATLAB dit "the number of elements in k and "matrice" must be the same"...je suis bloqué!
    C'est pour générer tes noms de variables que cela te pose problème non ?
    Au lieu d'écrire M(k) écris Mk ca ira déja mieux.
    Quand tu écris M(k)=... matlab attend une valeur de taille 1*1 et la tu lui mets une de taille n*4 d'ou le message d'erreur

  7. #7
    Futur Membre du Club
    Inscrit en
    Février 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Pour répondre à PaM, en fait, si j'écris Mk, je ne peut plus faire varier mon indice k pour obtenir M1, M2...

    Pour répondre à Caro, en fait je vais réaliser une régression polynomiale sur certaines valeurs de chacunes des matrices, ce qui me permettra d'obtenir 3 coefficients correspondant à une matrice (correspondant donc à une valeur dans la première colonne)...

  8. #8
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Citation Envoyé par ToPra Voir le message
    Pour répondre à Caro, en fait je vais réaliser une régression polynomiale sur certaines valeurs de chacunes des matrices, ce qui me permettra d'obtenir 3 coefficients correspondant à une matrice (correspondant donc à une valeur dans la première colonne)...
    Donc tu n'as pas besoin de créer les sous-matrices, juste d'y accéder, donc je ne vais pas m'auto-citer, relis mes posts
    Et si quelque chose t'échappe reviens nous voir avec au moins un peu de code à nous montrer.
    Règles du Forum

    Adepte de la maïeutique

  9. #9
    Membre actif
    Inscrit en
    Novembre 2006
    Messages
    236
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 236
    Points : 213
    Points
    213
    Par défaut
    Je te conseille de les mettre en cellules pour l'instant.

    Ensuite, mets toi à l'indexage logique, plus efficace.
    MATLAB R2008a - Windows XP 32 bit et Windows Vista 64 bit

  10. #10
    Futur Membre du Club
    Inscrit en
    Février 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    OK merci beaucoup à tout les trois,

    je vais essayer des faire mon code en m'aidant de vos conseils et je reviens dire si ça a fonctionné...

  11. #11
    Futur Membre du Club
    Inscrit en
    Février 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Ayé
    C'est bon ce que vous m'avez proposé fonctionne correctement...

    merci beaucoup!

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

Discussions similaires

  1. Bouger des sous-matrices dans une matrice
    Par DJEcalcul dans le forum MATLAB
    Réponses: 4
    Dernier message: 16/03/2012, 17h31
  2. [Débutant] Diviser une matrice en sous matrices
    Par insat2009 dans le forum MATLAB
    Réponses: 5
    Dernier message: 06/12/2010, 13h35
  3. Transformer une matrice en sous-matrices
    Par harafado dans le forum MATLAB
    Réponses: 6
    Dernier message: 08/04/2009, 20h14
  4. [Débutant] extraire une sous matrice d'une matrice
    Par mygwel dans le forum MATLAB
    Réponses: 8
    Dernier message: 30/03/2009, 16h52
  5. Division d'une matrice en sous matrices
    Par hanane78 dans le forum MATLAB
    Réponses: 4
    Dernier message: 02/05/2007, 18h15

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