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 :

Remplissage de matrice


Sujet :

MATLAB

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2010
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Janvier 2010
    Messages : 64
    Points : 35
    Points
    35
    Par défaut Remplissage de matrice
    salut les professionnels,
    j'ai essai:
    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
     
    M[];
    while (t1~=s(1))&&(s(2)~=t2)
        for l=1:1:x1+1 
        for k=1:1:x2+1
         M=M_new(k+t:(n1)+t,k+t:(n1)+t);
         disp(M);
         end
        if mod(length(M_new),n1)  > 0 % les colone non compter dans la boucle
          M_last = M_new(length(M_new) - mod(length(M_new),n1) + 1 :end);
        end
         disp(M_last);
         t2=n1+t2;
         disp(t2);
        end
     
        t1=n1+t1;
    disp(t1);
    end
    j'ai obtenu l'erreur suivant:
    Citation Envoyé par MATLAB
    Error in ==> matrice at 40 M=M_new(k+t: (n1)+t,k+t: (n1)+t);
    Merci de votre aide

  2. #2
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Points : 4 661
    Points
    4 661
    Par défaut
    Bonjour,

    Pourrais-tu nous mettre le message d'erreur complet?

    Aussi si tu as un exemple des données que tu utilises.

    Bonne soirée,
    Duf
    Simulink & Embedded Coder

    Au boulot : Windows 7 , MATLAB r2016b
    A la maison : ArchLinux mais pas MATLAB

  3. #3
    Nouveau membre du Club
    Inscrit en
    Janvier 2010
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Janvier 2010
    Messages : 64
    Points : 35
    Points
    35
    Par défaut
    salut duff
    je veux (par le code) partionnee une matrice en plusieurs autres

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ??? Error using ==> plus
    Integers can only be combined with integers of the same class, or scalar doubles.
     
    Error in ==> matrice at 40
         M=M_new(k+t:n1+t,k+t:n1+t);

    Bonne soirée

  4. #4
    Nouveau membre du Club
    Inscrit en
    Janvier 2010
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Janvier 2010
    Messages : 64
    Points : 35
    Points
    35
    Par défaut
    DESOLE DUF,
    VOICI L'EXEMPLE que vous avez demande
    c'est la grande matrice:
    M_new =

    1 2 3 4
    5 6 7 8
    9 10 1 2
    3 4 5 6
    7 8 9 10
    1 2 3 4
    5 6 7 8
    9 10 1 2
    3 4 5 6
    7 8 9 10

    voici la dimosion suivant laquelle je veux partitionner M_new
    n1 = 3(3 lignes,3 colonnes)

    ca devient:
    M= 1 2 3
    5 6 7
    9 10 1

    M_last= 4
    8
    2

    M= 3 4 5
    7 8 9
    1 2 3

    M_last= 6
    10
    4

    M= 5 6 7
    9 10 1
    3 4 5

    M_last= 8
    2
    6


    M_last= 7 8 9

    M_last= 10

    voici le code dés le début:
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    n1=3
     
    M=[];
    disp(M);
    s=size(M_new);
    disp(s);
    y1=(s(1)/n1);
    x1=uint8(y1);
    disp(x1);
    y2=(s(2)/n1);
    x2=uint8(y2);
    disp(x2);
    t1=0
    t2=0
    M_last=zeros(n1-1);
     
    while (t1~=s(1))&&(s(2)~=t2)
        for l=1:1:x1+1 
        for k=1:1:x2+1
         M=M_new(k+t:n1+t,k+t:n1+t);
         disp(M);
         end
        if mod(s(2),n1)  > 0 % les colone non compter dans la boucle
          M_last = M_new(end:s(2) - mod(s(2),n1) + 1 );
        end
         disp(M_last);
         t2=n1*x2+t2;
         disp(t2);
        end
        if mod(s(1),n1)  > 0 % les colone non compter dans la boucle
          M_last = M_new(s(1) - mod(s(1),n1) + 1 :end);
        end
        t1=n1*x1+t1;
    disp(t1);
    end
    aider moi s'il vous plait
    Bonne soirée

  5. #5
    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 : 53 160
    Points
    53 160
    Par défaut
    Essaie ceci :
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    M_new = [1 2 3 4
        5 6 7 8
        9 10 1 2
        3 4 5 6
        7 8 9 10
        1 2 3 4
        5 6 7 8
        9 10 1 2
        3 4 5 6
        7 8 9 10];
     
    n1 = 3;
     
    nRows = size(M_new,1);
     
    for n = 1:floor(nRows/n1)
     
        idxRows = n1*(n-1)+1:n1*n;
     
        M = M_new(idxRows,1:3);
        M_last = M_new(idxRows,4);
     
    end
     
    r = rem(nRows,n1);
     
    if r~=0
     
        idxRows = n1*n+1:n1*n+r;
     
        M = M_new(idxRows,1:3);
        M_last = M_new(idxRows,4);
     
    end
    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)

Discussions similaires

  1. [Débutant] Remplissage de matrice
    Par linda05 dans le forum MATLAB
    Réponses: 7
    Dernier message: 21/03/2014, 16h13
  2. fonctions de creation et remplissage de matrice
    Par grodwar dans le forum Débuter
    Réponses: 7
    Dernier message: 29/11/2011, 14h44
  3. [XL-2002] Remplissage de Matrices
    Par Titwou dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/04/2009, 11h19
  4. [scipy] remplissage de matrice creuse
    Par KINENVEU dans le forum Calcul scientifique
    Réponses: 2
    Dernier message: 27/04/2009, 06h59
  5. [Débutant] Remplissage d'une matrice
    Par Keldou dans le forum Octave
    Réponses: 2
    Dernier message: 24/04/2007, 20h54

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