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 :

Tableaux de cellules en .txt


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 66
    Par défaut Tableaux de cellules en .txt
    Je voudrais exporter des tableaux de cellules en .txt a partir de MATLAB

    On effet, mon tableau de cellule se présente sous forme de de colonnes avec en premières lignes, les titres des colonnes puis des nombres:

    ' ID'	'mean'	'Intensity '	'std'	'HA mean'
    0	58419	1043,19640000000	1106	972
    1	73811	858,267460000000	895	825
    7	205889	1806,04380000000	2129	1629
    8	73044	1074,17650000000	1201	990
    9	108074,010000000	1029,27620000000	1120	958
    10	127078	962,712100000000	1030	896
    11	46618	1456,81250000000	1526	1372
    12	165397	1008,51830000000	1138	914
    13	150576	1167,25590000000	1281	1051
    14	132898	1208,16370000000	1437	1039
    15	121709	1398,95400000000	1516	1268
    20	75436	1300,62070000000	1510	1111
    21	197000	1313,33340000000	1465	1186
    22	168268	1294,36930000000	1597	1121
    J'ai essayé fprintf mais il ne faut pas que ce soit des "cell"
    La version de MATLAB que j'ai ne présente pas la fonction cell2table et je suis un peu perdue.

    Quelqu'un aurait une idée? Je vous en serai très reconnaissante.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 66
    Par défaut
    J'arrive à sauvegarder sans aucun problème sous format.XLS mais j'ai besoin de les avoir aussi en format .txt et ayant plein de données à traiter j'aimerai bien ne pas à avoir à rouvrir Excel et sauvegarder en .txt.

    Merci de votre aide

  3. #3
    Membre chevronné
    Homme Profil pro
    Éternel universitaire
    Inscrit en
    Avril 2012
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Éternel universitaire

    Informations forums :
    Inscription : Avril 2012
    Messages : 421
    Par défaut
    Tu peux passer par la fonction fprintf tout de même.

    Par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    m(1)={'pouetpouet'}
    m(2)={'blabla'}
    for i=1:numel(m)
        fprintf('%s\n',m{i})
    end

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 66
    Par défaut
    Bonjour, merci pour votre réponse,

    j'ai en effet déjà essayé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fprintf ('%s\n', tabexport{1})
    mais j’obtiens cette erreur :
    ??? Error using ==> fprintf
    Function is not defined for 'cell' inputs.
    tabexport est un tableau de cellules et tabexport{1} est une "matrice" avec en 1ere ligne des chaines de "char" (titre des colonnes) et après le reste sont des "doubles".

    Si quelqu'un a des idées, je suis preneuse.

    Merci d'avance

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Tes données sont -elles formées ainsi ?
    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
    tabexport = [...
      {'ID'    'mean'   'Intensity '   'std'    'HA mean'}
        num2cell([...
        0        58419    1043.1964      1106       972
        1        73811    858.26746       895       825
        7       205889    1806.0438      2129      1629
        8        73044    1074.1765      1201       990
        9    108074.01    1029.2762      1120       958
        10      127078     962.7121      1030       896
        11       46618    1456.8125      1526      1372
        12      165397    1008.5183      1138       914
        13      150576    1167.2559      1281      1051
        14      132898    1208.1637      1437      1039
        15      121709     1398.954      1516      1268
        20       75436    1300.6207      1510      1111
        21      197000    1313.3334      1465      1186
        22      168268    1294.3693      1597      1121])]
    tabexport = mat2cell(tabexport, size(tabexport,1), ones(1,size(tabexport,2)))
    ?
    Le tout est d'obtenir le contenu de chaque niveau de cellule afin de se retrouver au final des valeurs numériques ou chaines.
    Ici tabexport{1} est aussi un tableau de cellules :
    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
    >> tabexport{1}
     
    ans = 
     
        'ID'
        [ 0]
        [ 1]
        [ 7]
        [ 8]
        [ 9]
        [10]
        [11]
        [12]
        [13]
        [14]
        [15]
        [20]
        [21]
        [22]
    Il faut donc encore descendre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    >> tabexport{1}{1}
     
    ans =
     
    ID
     
    >> tabexport{1}{2}
     
    ans =
     
         0

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 66
    Par défaut
    Ah super,

    tabexport est composé de 3 cellules et chacune de ces cellules est du type que vous avez décrit. Il y a donc un étage de plus dans l'arborescence

    J'étais bien parti sur l'idée de tout mettre en chaine de char ou en valeur numériques avec quelquechose du type:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    % la 1ere ligne est traduite en chaine
    B= cellstr(tabexport{1}(1, :));
     
    % et apres, on traduit le reste de la matrice en chaine ( mais cela ne focntionne pas!!!!!)
    for i=2:size(tabexport{1},1)
    C=cellstr(tabexport{1}(i, :));
    end
     
    %puis on concatène
    tabexport1 = [B;C];
    le hic , c'est que la boucle ne fonctionne pas.


    J'ai essayé de faire autrement avec tout en numérique avec cell2mat mais la 1ere ligne est bizzare.


    MErci de votre aide

Discussions similaires

  1. [Débutant] sauvegarder des tableaux de cellules en plusieurs fichiers .txt
    Par gegon dans le forum MATLAB
    Réponses: 7
    Dernier message: 25/01/2013, 15h05
  2. Réponses: 7
    Dernier message: 20/02/2008, 13h46
  3. [Tableaux] si cellule vide, alors cellule inexistante
    Par afrodje dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 31/07/2007, 13h21
  4. Réponses: 2
    Dernier message: 01/12/2006, 13h28
  5. [Tableaux] Taille cellule de tableau
    Par johnkro dans le forum Langage
    Réponses: 4
    Dernier message: 27/07/2006, 08h48

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