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

pro de matlab ...help



  1. #1
    bikerfou

    Unhappy pro de matlab ...help


    ------

    quelqu un sait il comment fait on pour loader qu une partie d'un fichier .txt
    j ai en effet un fichier de données dont les 4 premiere lignes sont du texte et ensuite les données que je veux importer.
    j ai un message d'erreur avec la fonction load()

    si vous avez une idée ou une adresse internet..............


    ( peut etre fopen mais je ne sais pas l utiliiser...)
    (il y a aussi la tech du notepad et virer à la main les 4 premières lignes mais ayant beaucoup de fichiers c est un peu long)

    Bienvenue pour ton premier message.
    Je me permets de t'inviter à lire la la charte du forum.
    Tu verras que lorsqu'on demande un service ou un renseignement il est courtois de commencer par bonjour, salut... et de terminer en remerciant ceux qui vont prendre la peine de te répondre.

    JPL modérateur Futura Technique

    -----
    Dernière modification par JPL ; 28/04/2004 à 12h12.

  2. Publicité
  3. #2
    azt

    Cool Re : pro de matlab ...help

    Salut, voilà un exemple que j'ai tapé il y a quelques temps pour pouvoir le réutiliser le temps voulu.

    Le fichier de données
    Code:
    //Voila un fichier d'aide
    //pour appendre à gerer les fichiers textes
    //avec Matlab
    
    0.00    1.0
    0.10    1.1
    0.15    2.7
    et le fichier .m
    Code:
    %
    % Lecture de fichiers
    %
    
    % Ouverture du fichier texte en lecture seule
    fid=fopen('fichier.txt','r'); 
    
        % Boucle permettant le retrait des lignes en trop au début du fichier
        for i=0:3                 
            a=fgetl(fid);
            disp (a);        % Juste pour l'afficher à l'écran
        end;
    
        % Lecture des données qui se trouvent sur deux colonnes
        % Quelque soit la quantité de données
        b=fscanf(fid,'%g %g',[2 inf]);
        
        %Remise en ordre des données
        b=b';
    
    %Fermeture du fichier texte
    fclose(fid);
    
    %Affichage du résultat
    disp(b);
    Il ne reste plus qu'à adapter le programme avec tes données.
    AZT

  4. #3
    bikerfou

    Talking Re : pro de matlab ...help

    ça fonctionne impec merci.
    j'aimerai savoir quel est la fonction de '%g %g'
    j ai vu dans l aide de matlab que c' était en rapport avec la programmation en C (interprétation des séparateurs , textes , chiffres...) existe t il un tableau récapitulatif ?????????????
    il y a bien quelques exemples dans l aide matlab mais sans plus d'explications

  5. #4
    azt

    Re : pro de matlab ...help

    ReSalut,
    la fonction fscanf fonctionne comme en C,
    il me semble que la seule différence est le traitement par tableau qui est possible dans matlab mais pas en c.
    Enfin d'après mes connaissances.

    AZT

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

    Re : pro de matlab ...help

    ok!!! merci AZT je penserai a toi pour mes futur problemes...............

  8. #6
    bikerfou

    Unhappy Re : pro de matlab ...help

    voila donc le probleme suivant:
    je cherche a récupérer le nom d' un fichier avec la formule suivante:


    [sujet,adressefichier]=uigetfile('*.mat','quel est le sujet a importer?')

    j obtiens alors une varialble "string" (donc un texte):
    sujet == cobaye1.mat


    Je cherche à récupérer que le nom du fichier (cobaye1) sans l extention:

    quelle est l'astuce??? ou quelle autre fonction utiliser pour importer le nom du fichier??? au pire quelle est la fonction permettant de manipuler la variable (ici sujet) afin d enlever '.MAT'


    merci

  9. Publicité
  10. #7
    azt

    Re : pro de matlab ...help

    Problème résolu, donc je poste ici la réponse que j'ai donnée par mail.
    Si cela peut aider quelqu'un

    Tu obtiens une variable en chaine de caractères.
    Il faut savoir que sous Matlab (et en c aussi presque de la même manière)
    les chaines de caractères sont stoquées sous forme de tableau (ou matrice si
    tu préféres).

    Donc pour les tableaux, il y a plusieurs manipulations possibles, par
    exemple :
    size(sujet) --> va te donner la taille de ton tableau,
    size(sujet,1) --> Donne le nombre de colonnes,
    size(sujet,2) --> donne le nombre de lignes,
    sujet(1:2) --> Extrait les éléments 1 et 2 de ton tableau.
    Tu vois venir l'idée pour résoudre ton problème ?

    Tu pourrais utiliser une ligne comme
    sujet(1:size(sujet,2)-4)
    Le -4 c'est pour retirer le '.mat' qui fait 4 caractères mais il y a une
    autre méthode si l'extension est variable, genre tu veux le nom d'un fichier
    'essai.m' .

    On utilise pour cela la fonction 'findstr()' qui permet de rechercher la
    présence d'une chaîne de caractères dans une autre.
    findstr('bonjour','n'), par exemple
    findstr renvoie un tableau avec toutes les positions où se trouve le
    caractère recherché et retourne un tableau vide s'il ne trouve rien.
    On obtient donc une ligne de code comme celle suivante pour obtenir le nom
    du fichier :
    sujet(1: findstr(sujet,'.')-1)

    Voilà, la différence avec le C (je sais j'y fait souvent référence) c'est
    qu'en C tu a le moyen de manipuler des caractères avec des fonctions
    précises. En Matlab, tu a les fonctions pour tavailler sur les tableaux donc
    pas besoin de fonctions sur les chaînes de caractères comme en C.

    AZT

Discussions similaires

  1. Master Pro où bosser après la licence Pro?
    Par mastah71 dans le forum Orientation après le BAC
    Réponses: 0
    Dernier message: 06/09/2007, 12h57
  2. [MatLab] Sb2Sl => Matlab classique = pb intégration.
    Par Zangdar dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 03/08/2005, 21h02
  3. help. besoin d'un pro sur matlab
    Par lud14 dans le forum Logiciel - Software - Open Source
    Réponses: 4
    Dernier message: 29/07/2004, 10h12
Découvrez nos comparatifs produits sur l'informatique et les technologies.