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 :

concatener les ligne d'un tableau de cellules


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 42
    Points : 20
    Points
    20
    Par défaut concatener les ligne d'un tableau de cellules
    Bonjour

    Je souhaite concatener les cellules de mon tableau de caractere pour ensuite le mettre dans un tableau excel, voici mon programme:
    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
     
    clear all;
    close all;
    path = '.' ; 
    e = dir(path) ; 
    e = e(~cell2mat({e(:).isdir})); 
    n = ({e(:).name});
    ns= cell(1,303);
    for k= 1:length (n) ; 
                                 str={e(k).name};
                                 pat='.ini';
                                 ns(k)=regexprep(str,pat,'');                          
    end
     
    for j= 1:ns
        ns1(j)=strcat(ns)
    end
    voici le message d'erreur qu'on me donne

    ??? Undefined function or method '_colonobj' for input arguments of type 'cell'.
    dois je definir une variable intrmediaire pour mettre les valeurs de ns?
    Merci d'avance

  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 309
    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 309
    Points : 52 901
    Points
    52 901
    Par défaut
    Ton code m'a l'air inutilement compliqué.

    Que cherches-tu à faire exactement avec REGEXPREP ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 42
    Points : 20
    Points
    20
    Par défaut
    oooooooooooohhhhhhhje pensais que c'etait optimisé au max...........
    bah je recupere les nom de fichiers dans des cellules ensuite j'enleve l'extension et enseuite je concatene les cellule pour pouvoir les en colonne dans excel.............

    regexprep m'enleve l'extension

  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 309
    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 309
    Points : 52 901
    Points
    52 901
    Par défaut
    Alors voici une version allégée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    clc
    clear all
     
    e = dir;
     
    % Suppression des noms de dossier
    idx = [e.isdir];
    e(idx) = []; 
     
    % Suppression des extensions
    nf = cell(numel(e),1);
    for n = 1:numel(e)
       [pasbesoin,nf{n,1}] = fileparts(e(n).name);
    end
    ou encore avec les dernière version de MATLAB:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    clc
    clear all
    
    e = dir;
    
    % Suppression des noms de dossier
    idx = [e.isdir];
    e(idx) = []; 
    
    % Suppression des extensions
    nf = cell(numel(e),1);
    for n = 1:numel(e)
       [~,nf{n,1}] = fileparts(e(n).name);
    end

  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 309
    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 309
    Points : 52 901
    Points
    52 901
    Par défaut
    La même chose sans la boucle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    clc
    clear all
     
    e = dir;
     
    % Suppression des noms de dossier
    idx = [e.isdir];
    e(idx) = []; 
     
    % Suppression des extensions
    idx = arrayfun(@(x) find(x.name=='.',1,'last'),e,'UniformOutput',false).';
    nf = cellfun(@(x,y) x(1:y-1),{e.name},idx,'UniformOutput',false).';

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 42
    Points : 20
    Points
    20
    Par défaut
    Ah oui carrément....c'est vraiment plus le même programme. Par contre quand je veux afficher nf pour créer ma tableau excel ça me met 'lecture'....................en prenant la version allégé.
    si tu pouvais m'expliquer s'il te plait DUT.

    Merci a toi

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 42
    Points : 20
    Points
    20
    Par défaut
    Bonjour Dut comment remettre les extensions, aux fichiers. Le truc c'est que je ne veux les enlever uniquement dans mon tableau excel pas dans mon dossier. La le reste de mon programme ne tourne plus.

  8. #8
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 309
    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 309
    Points : 52 901
    Points
    52 901
    Par défaut
    Les noms complets sont toujours disponibles avec {e(n).name}, non ?

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 42
    Points : 20
    Points
    20
    Par défaut
    bah oui............................................je n'y comprends vraiment rien......pourquoi quand j'ouvre mon dossier l'extension n’apparaît pas alors?
    Merci pour ce premier souci, par contre je n'arrive pas mettre les nom de fichier dans la première colonne excel.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     for n = 1:numel(e)
    [,nf{n,1}] = fileparts(e(n).name);
     end
    xlswrite('nom_fichier.xls',nf)
    Là çà ne me met pas les noms. Désolé d'insister mais j'ai vraiment envie de comprendre ou sont mes erreurs et pouvoir être autonome par la suite......!!!

  10. #10
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 309
    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 309
    Points : 52 901
    Points
    52 901
    Par défaut
    Cette syntaxe est fausse :

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >> [,nf] = fileparts('C:\test\test.ini')
     
    nf =
     
    C:\test
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >> [,nf] = fileparts('test.ini')
     
    nf =
     
         ''
    Relis bien les codes que j'ai donnés précédemment.

  11. #11
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 42
    Points : 20
    Points
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    [~,nom_patient{k,1}] = fileparts(Dossier(k).name)
    la c'est bon j'ai ma liste qui s'affiche.
    Merci beaucoup DUT

  12. #12
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 42
    Points : 20
    Points
    20
    Par défaut
    avant de clôturer la discussion peux tu m'indiquer la signification du tild, il est le sigle de la complémentarité habituellement?

  13. #13
    Invité
    Invité(e)
    Par défaut
    Non, il veux dire exactement la même chose que dans l'autre code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [pasbesoin,nf{n,1}] = fileparts(e(n).name);
    N'ayant pas besoin du premier argument retourné, cela évite des créer une variable inutile.
    Pour en savoir plus

  14. #14
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 42
    Points : 20
    Points
    20
    Par défaut
    Bah super. merci d'avoir prit le temps de répondre a mes questions.

    Cordialement
    Zizzo

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 02/03/2007, 16h37
  2. Cacher les lignes de mon tableau
    Par Kyvin dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 25/09/2006, 16h11
  3. [Tableaux] lien sur les lignes d'un tableau
    Par einsteineuzzz dans le forum Langage
    Réponses: 2
    Dernier message: 19/06/2006, 14h16
  4. changement de couleur sur les lignes d'un tableau
    Par brasco06 dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 13/04/2006, 18h03
  5. Espacement entre les ligne d'un tableau
    Par Flobel dans le forum Mise en page CSS
    Réponses: 9
    Dernier message: 02/11/2004, 09h33

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