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 :

Création vecteur et matrices de chaines de caractères


Sujet :

MATLAB

  1. #1
    Candidat au Club
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Avril 2016
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2016
    Messages : 30
    Points : 4
    Points
    4
    Par défaut Création vecteur et matrices de chaines de caractères
    Bonjour à tous,
    je veux créer un vecteur Matlab contenant des chaines de caractères ainsi q'un matrice aussi contenant des chaines qui peut m'aider?

  2. #2
    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 163
    Points
    53 163
    Par défaut
    La question n'est pas très claire.

    Aurais-tu un exemple à nous montrer ?
    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)

  3. #3
    Candidat au Club
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Avril 2016
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2016
    Messages : 30
    Points : 4
    Points
    4
    Par défaut Création vecteur et matrices de chaines de caractères
    Bonjour,
    je veux créer un vecteur F [f1 f2 f3 f4 f5 ] ;
    et un matrice
    M=
    aaa bbb ccc
    ddd eee fff
    ggg hhh iii

    c'est un exemple, si vous pouvez m'aider.

  4. #4
    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 163
    Points
    53 163
    Par défaut
    Il faut utiliser un tableau de cellules
    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)

  5. #5
    Candidat au Club
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Avril 2016
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2016
    Messages : 30
    Points : 4
    Points
    4
    Par défaut Création vecteur et matrices de chaines de caractères
    Merci bien, j'ai essayé d'utiliser un tableau de cellules mais je n'arrive pas à le remplir en utilisant un boucle for: mon tableau a 7 lignes 100 colonnes je dois le remplir comme suit:
    1ere ligne contient s1 s2 ---->s100
    2 eme ligne contient s101------>s200
    .
    .
    .
    7 eme ligne contient s601----->s700

    Comment le faire?

  6. #6
    Membre émérite
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Points : 2 841
    Points
    2 841
    Par défaut Création vecteur et matrices de chaines de caractères
    Bonjour,

    Les matrices sont faites pour utiliser des nombres.
    On peut faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    f1= char([97 97 97])
    f2= char([98 98 98])
    f3= char([99 99 99])
    f4=char([100 100 100]);
    f5=char([104 104 104]);
    F =[f1;f2;f3;f4]

  7. #7
    Candidat au Club
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Avril 2016
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2016
    Messages : 30
    Points : 4
    Points
    4
    Par défaut Création vecteur et matrices de chaines de caractères
    Bonjour,
    Merci pour vos propositions, mais il me reste une solution pour remplir un tableau de cellules 100*7 (puisque ce impossible avec les matrices) par des chaines en utilisant un boucle s'il est possibles. je dois avoir comme résultat:
    1ere ligne contient s1, s2 ---->s100
    2 eme ligne contient s101------>s200
    .
    .
    .
    7 eme ligne contient s601----->s700

    Comment le faire?
    voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    k=1;
    for i=1:7
         for j=1:100
         ES(i,j)='s'+k;
         k=k+1;
         end
    end
    ES
    Normalement tous va bien mais le résultat ne me convient pas

  8. #8
    Candidat au Club
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Avril 2016
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2016
    Messages : 30
    Points : 4
    Points
    4
    Par défaut Les matrices en Matlab
    Bonjour
    j'ai une matrice

    M=

    1 2 3
    4 5 6
    7 8 9
    et une matrice RC=

    0.5 1 0.75
    0.25 1 1
    0.5 1 0.5

    avec RC(i,j) est associée à M(i,j)
    Maintenant j'ai une autre matrice
    M1=
    3 4 5
    2 1 6
    2 3 1


    contenant les meme valeurs que M1 mais avec des ordres différents

    Mon problème est la suivante je veux avoir une matrice
    R=
    X1
    X2
    X3

    avec X1 est la somme des RC de la ligne une de la matrice M1
    X2 est la somme des RC de la ligne deux de la matrice M1
    X3 est la somme des RC de la ligne 3 de la matrice M1
    c -à-d
    X1= 0.75+ 0.25+1 (0.75 est le RC de la valeur 3 de M puisque M et RC sont associés)
    X2= 1+0.5+1
    X3= 1+0.75+0.5
    J'espère que j'ai bien réussis à décrire le problème
    Si quelq'un peut m'aider ?
    Remarque je souhaite bien que la solution contient des boucles car ce juste un exemple simplifiant le problème, en réalité j'ai une matrice (2500*7)
    et merci d'avance

  9. #9
    Membre émérite
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Points : 2 841
    Points
    2 841
    Par défaut Création vecteur et matrices de chaines de caractères
    Bonjour,

    Une solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    X1=sum(RC(M(M1(1,:))))
    X2=sum(RC(M(M1(2,:))))
    X3=sum(RC(M(M1(3,:))))
    ou :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    X(1:3,:)=sum(RC(M(M1(1:3,:))),2)

  10. #10
    Candidat au Club
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Avril 2016
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2016
    Messages : 30
    Points : 4
    Points
    4
    Par défaut
    Bonjour tout d'abord merci pour votre solution. J'ai essayé d'utiliser la 2 eme solution mais lorsque j'ai fait quelques modifications il ya des fautes qui apparaissent:
    En réalité mes matrices M et RC sont des tailles (7*100) et M1 est de taille (2500*7)
    et X1,X2,....X2500 ne contiennent pas exactement la somme de toutes les colonnes mais je veux par exemple que :
    X1 contient la valeur de RC de colonne 1 + RC de colonne 2 + max(RC colonne 3, RC colonne 4)+ RC de colonne 5+ RC de colonne 6+ RC de colonne 7
    de même pour X2,,,,,,X2500.
    Bref il s'agit de la même problème sauf qu'il faut changer la fonction "sum" comme décrit ci-dessous .
    J’espère que ce clair sinon essayez de me poser des questions pour que je vous explique encore.
    Merci une autre fois.
    Voici ma solution elle fonctionne mais lorsque j'ajoute la fonction "max" elle ne fonctionne plus!
    X(1:2500,: )=RC(M(M1(1:2500,1))),2+RC(M(M1(1:2500,2))),2+RC(M(M1(1:2500,3))),2+(max(RC(M(M1(1:2500,4))),2,RC(M(M1(1:2500,5))),2))+(max(RC(M(M1(1:2500,6))),2,RC(M(M1(1:2500,7))),2))

  11. #11
    Membre émérite
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Points : 2 841
    Points
    2 841
    Par défaut
    Bonjour,

    La formule ne va pas si M et M1 contiennent des zéros.

    Tu prends le max des colonnes 4 et 5 et 6 et 7 !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    X(1:2500,:)=RC(M(M1(1:2500,1)))+RC(M(M1(1:2500,2)))+RC(M(M1(1:2500,3)))+(max(RC(M(M1(1:2500,4)))+RC(M(M1(1:2500,5)))))+(max(RC(M(M1(1:2500,6))),RC(M(M1(1:2500,7)))));

  12. #12
    Candidat au Club
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Avril 2016
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2016
    Messages : 30
    Points : 4
    Points
    4
    Par défaut
    Bonjour, voici mon code:
    k=1;
    for i=1:7
    for j=1:100
    M(i,j)=k;
    k=k+1;
    end
    end
    ES
    for i=1:7
    for j=1:100
    RC(i,j)=1;
    end
    end
    V1=(1:2:100);
    V2=[101];
    V3=[201];
    V4=[301];
    V5=[401];
    V6=[501];
    V7=(602:2:700);
    n=1;
    for i=1:length(V1)
    R=[];
    R=[R V1(i)];
    for j=1:length(V2)
    R=R(1:1);
    R=[R V2(j)];
    for k=1:length(V3)
    R=R(1:2);
    R=[R V3(k)];
    for l=1:length(V4)
    R=R(1:3);
    R=[R V4(l)];
    for p=1:length(V5)
    R=R(1:4);
    R=[R V5(p)];
    for y=1:length(V6)
    R=R(1:5);
    R=[R V6(y)];
    for o=1:length(V7)
    R=R(1:6);
    R=[R V7(o)];




    RR(n,: )=R
    R=R(1:7);
    n=n+1;
    end
    end
    end
    end
    end
    end
    end

    RR;

    M1=RR;
    X(1:2500,: )=RC(M(M1(1:2500,1)))+RC(M(M1(1:2500,2)))+RC(M(M1(1:2500,3)))+(max(RC(M(M1(1:2500,4)))+RC(M(M1(1:2500,5)))))+(max(RC(M(M1(1:2500,6))),RC(M(M1(1:2500,7)))));
    Lorsque je 'éxecute vois l'erreur:
    ??? Index exceeds matrix dimensions.

    Error in ==> test1 at 61
    X(1:2500,: )=CR(ES(ConfValid(1:2500,1)))+CR(ES(ConfValid(1:2500,2)))+CR(ES(ConfValid(1:2500,3)))+(max(CR(ES(ConfValid(1:2500,4)))+CR(ES(ConfValid(1:2500,5)))))+(max(CR(M(ConfValid(1:2500,6))),CR(ES(Co
    >> Si vous pouvez la corriger et merci infiniment.

  13. #13
    Membre émérite
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Points : 2 841
    Points
    2 841
    Par défaut
    Y a-t-il des zéros dans M et M1 ?

  14. #14
    Candidat au Club
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Avril 2016
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2016
    Messages : 30
    Points : 4
    Points
    4
    Par défaut
    non pas des zéros

  15. #15
    Membre émérite
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Points : 2 841
    Points
    2 841
    Par défaut
    Je n'ai pas d'erreur sauf pour ES ? :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    k=1;
    for i=1:7
    for j=1:100 
    M(i,j)=k;
    k=k+1;
    end
    end
    ES
    X ne contient que des 6

  16. #16
    Candidat au Club
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Avril 2016
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2016
    Messages : 30
    Points : 4
    Points
    4
    Par défaut
    je veux dire par ES, M => j'ai oublié de le remplacer par M ici. Ce bon je viens de l'exécuter une autre fois et ça marche Merci bien pour votre aide !

  17. #17
    Candidat au Club
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Avril 2016
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2016
    Messages : 30
    Points : 4
    Points
    4
    Par défaut
    Bonjour une autre fois,
    Maintenant je veux remplacer les "+" par des "*" en gardant la même formule comment faire?
    Voici ce que j'ai écrit:
    X(1:2500,: )=RC(M(M1(1:2500,1)))*RC(M(M1(1:2500,2)))*RC(M(M1(1:2500,3)))*(max(RC(M(M1(1:2500,4))),RC(M(M1(1:2500,5)))))*(max(RC(M(M1(1:2500,6))),RC(M(M1(1:2500,7)))));
    Mais l'erreur :
    ??? Error using ==> mtimes
    Inner matrix dimensions must agree.

    Si vous pouvez m'aidez?
    Merci d'avance.

  18. #18
    Membre émérite
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Points : 2 841
    Points
    2 841
    Par défaut
    Bonjour,

    Mets un point devant * :
    .*

  19. #19
    Candidat au Club
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Avril 2016
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2016
    Messages : 30
    Points : 4
    Points
    4
    Par défaut
    Merci infiniment !

  20. #20
    Candidat au Club
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Avril 2016
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2016
    Messages : 30
    Points : 4
    Points
    4
    Par défaut Les matrices en Matlab
    Bonjour,
    Supposant que j'ai une matrice A(2500,7)
    Je veux avoir une matrice B (taille inconnue) en faisant un test:
    Si la somme de colonne de la ligne dans A >500 la ligne va être stocker dans B (parcourir toutes les lignes).
    Comment faire?

Discussions similaires

  1. transposé d'une matrice de chaine de caractére carré
    Par maissaab dans le forum Général Python
    Réponses: 4
    Dernier message: 04/04/2011, 13h14
  2. Matrice de chaine de caractères
    Par polopolo81 dans le forum Scilab
    Réponses: 1
    Dernier message: 30/08/2010, 18h15
  3. Réponses: 5
    Dernier message: 12/01/2009, 18h47
  4. [Débutant] Matrice de chaine de caractères
    Par anael52 dans le forum MATLAB
    Réponses: 5
    Dernier message: 02/06/2008, 09h44
  5. Réponses: 11
    Dernier message: 10/03/2008, 12h49

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