Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

Boucle pour importer des fichiers dans MATLAB



  1. #1
    nunut

    Red face Boucle pour importer des fichiers dans MATLAB


    ------

    Bonjour,

    J'essaie désespérément d'importer mes fichiers dans Matlab à l'aide d'une boucle.

    Mes fichiers sont soit des fichiers *.txt ou *.csv (je les ai enregistrés sous plusieurs formes). Ils comportent 400 lignes et 9 colonnes chacun.
    Exemple: 177.1078196 173.1860427 173.2297537 2 1 1 6.7579 6.7142 0.1


    Quand je lance le script dans Matlab, cela a l'air de fonctionner, car les fichiers sont lus.
    Cependant si on lui demande la taille du fichier lu, il affiche : 1ligne et 9 colonnes!!


    Voila mon script:


    clear all

    rep= 'C:\Users\**'; % J'ai volontairement pas affiché tt le path..
    ext= '*.csv';
    chemin = fullfile(rep,ext);
    files=dir(chemin);


    for ii=1:length(files);
    currfile=files(ii).name
    fid = fopen(currfile);

    temp=textscan(fid, '%f%f%f%f%f%f%f%f%f', 'delimiter', ';');


    S1 = temp;
    [M N ]=size (S1)

    fclose(fid);
    end



    Est-ce que quelqu'un a déjà eu le même soucis que moi?
    D'où peut bien provenir mon erreur?!

    Merci bcp pour vos réponses et votre aide!!
    Bonne journée

    -----

  2. #2
    fiatlux

    Re : Boucle pour importer des fichiers dans MATLAB

    salut

    Attention S1 (ou temp) c'est une cellule, pas une matrice. Et comme textscan lit colonne par colonne, dans S1{1} tu as ta première colonne (une matrice de 400 lignes et 1 colonne), dans S1{2} ta 2e colonne, etc., jusqu'à S1{9}. Mais S1 a bien une taille 1x9 car elle contient 9 matrices ! Et chaque matrice a une taille 400x1. Donc si par exemple tu veux te créer une matrice 400x9 avec toutes tes données, tu fais:
    Code:
    M = [S1{1}, S1{2}, S1{3}, S1{4}, S1{5}, S1{6}, S1{7}, S1{8}, S1{9}];
    Ou simplement:
    Code:
    M = []; for i=1:length(S1), M = [M, S1{i}]; end
    La pie niche-t-elle haut ? Oui, la pie niche haut.

  3. #3
    nunut

    Re : Boucle pour importer des fichiers dans MATLAB

    Merci bcp pour ta réponse et pour l'info. Je n'avais pas du tout pensé a ca.

    Du coup y aurait-il un moyen plus simple pour importer un fichier en "une seule matrice".
    Avec kkch similaire à la fonction: load?

    Merci

  4. #4
    nunut

    Re : Boucle pour importer des fichiers dans MATLAB

    Après une petite minute de réflexion supplémentaire, j'ai remarqué que ta solution était juste parfaite

    Merci encore!
    Bonne fin de semaine

  5. A voir en vidéo sur Futura
  6. #5
    fiatlux

    Re : Boucle pour importer des fichiers dans MATLAB

    De rien
    La pie niche-t-elle haut ? Oui, la pie niche haut.

Discussions similaires

  1. Matlab : importer un grand nombre de fichiers
    Par guiyom44 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 16/03/2011, 15h46
  2. Boucle des fonctions sous Matlab
    Par electron22 dans le forum Programmation et langages, Algorithmique
    Réponses: 1
    Dernier message: 02/03/2011, 17h54
  3. Bloquer une colonne dans boucle for , Matlab
    Par magali. dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 03/07/2010, 02h34
  4. Matlab : Problème de format dans boucle
    Par jackybarjo dans le forum Logiciel - Software - Open Source
    Réponses: 7
    Dernier message: 03/04/2008, 11h15
  5. Comment importer des fichiers images sur EAGLE ?
    Par zanzeoo dans le forum Électronique
    Réponses: 8
    Dernier message: 05/12/2003, 22h15