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 :

problème avec importdata


Sujet :

MATLAB

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2013
    Messages : 34
    Points : 29
    Points
    29
    Par défaut problème avec importdata
    Bonjour à tous,

    débutant sur matlab mais pas en programmation, je suis confronté à un problème: je stocke des données numériques et des string dans une liste que j'exporte dans un txt: Jusque là tout va bien. Par contre quand je veux importer ces valeurs stockées dans mon txt, l'importation s'arrête dès qu'un élément n'est pas un nombre.
    Ici le code de création du txt, stockant une donnée par ligne:

    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
    list_handles = [s1;s2;s3;s4;...;s45]
           for i = 1:45
                temp = cell2mat(list_handles(i));
                if isnan(temp)
                    list{i} = list_handles{i};
                else    
                    list{i} = num2str(list_handles{i});
                end
            end;
            save([pathname,filename], 'list');
            var = sprintf('%s \n',list{:});
            dlmwrite([pathname,filename],var);
            fid=fopen([pathname,filename],'r');
            X=fread(fid);
            fclose(fid);
     
            X=strrep(X,',','');
            X = strrep(X,' ','');
            fid=fopen([pathname,filename],'w');
            fwrite(fid,X);
            fclose(fid);
    Ici l'importation de mon fichier text:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    [filename, pathname, filterindex] = uigetfile( ...
        {  '*.txt','text files (*.txt)';}, ...
        'Load',param_folder);
     
    if pathname ~=0 
    param_folder = pathname;
    end;
    list = importdata([pathname,filename],'');
    A ce stade,quand j'affiche list, il me renvoie:

    Le 4e terme de mon txt est 'signal(1)', je ne sais pas pourquoi l'importation s'arrête sur ce terme!
    Merci de votre aide!

  2. #2
    Membre averti
    Femme Profil pro
    Ingénieur informatique scientifique
    Inscrit en
    Mai 2010
    Messages
    313
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur informatique scientifique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2010
    Messages : 313
    Points : 301
    Points
    301
    Par défaut
    Bonjour,

    si tu jettes un petit coup d'oeil à la doc de importdata, ils disent la chose suivante:

    For ASCII files and spreadsheets, importdata expects to find numeric data in a rectangular form. [...] To import ASCII files with nonnumeric characters anywhere else, including columns of character data or formatted dates or times, use textscan instead of importdata.
    Il faut donc plutôt utiliser textscan:
    http://www.mathworks.fr/fr/help/matl...text-file.html

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2013
    Messages : 34
    Points : 29
    Points
    29
    Par défaut
    Merci Mokochan, de ta réponse rapide. Effectivement, importdata n'était pas la fonction appropriée pour ce que je voulais faire. J'avais aussi tenté textscan, mais les résultats n'étaient pas très concluants non plus. En revanche, je viens d'essayer avec textread et ma liste s'est remplie, mon problème est donc résolu!

  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 316
    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 316
    Points : 52 948
    Points
    52 948
    Par défaut
    Prends l'habitude de remplacer :

    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fullfile(pathname,filename)
    Voir la FAQ : Comment concaténer le nom d'un fichier et celui d'un répertoire ?

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2013
    Messages : 34
    Points : 29
    Points
    29
    Par défaut
    Merci, je prends note! (au passage, merci pour tout ce que tu as fait pour la faq, elle m'a été d'un grand secours depuis que je me suis mis à matlab )

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

Discussions similaires

  1. Problème avec importdata
    Par callofduty dans le forum MATLAB
    Réponses: 4
    Dernier message: 15/01/2014, 13h02
  2. VC++ Direct3D8, problème avec LPD3DXFONT et LPD3DTEXTURE8
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 03/08/2002, 11h10
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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