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 la fonction fprintf


Sujet :

MATLAB

  1. #1
    Membre régulier Avatar de Flaherty Mc Coillean
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Décembre 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 108
    Points : 75
    Points
    75
    Par défaut problème avec la fonction fprintf
    Bonjour,

    je vous explique le topo vite fait, j'ai une série d'images satellite, prisent à des moments différents mais qui ont toutes les mêmes caractéristiques (même nombre de lignes, de colonnes, même position géographique...). Pour pouvoir les lire plus facilement sous un programme de traitement, je veux pour chaque image lui créer un header (.hdr) qui lui soit associée.

    voici le code que j'ai écrit pour le moment:
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    close all
    clear all
    clc
     
    %dans un premier temps on choisi le répertoire où sont rangées les images
    rep = 'F:\temp';
    ext = '*.rst';
     
    %on fait une liste des fichiers que contient ce répertoire
    chemin = fullfile(rep,ext);
    list = dir(chemin);
     
    %on fait un tableau qui a le nom de tous les fichiers du répertoire
    for n = 1:numel(list)
        nom{n} = list(n).name;
        nom{n}=strcat(nom{n}(1:end-4),'.hdr');
    end
     
    %on ouvre un boite de dialogue qui permet de rentrer les paramètres de
    %l'image
    prompt={'nombre de colonnes ?','nombre de lignes ?','nombre de bandes ?','nombre d offset ?'};
    dlg_title='paramètres de l image'; 
    num_lines=1;
    def={'1000','500','1','0'}; 
    answer1=inputdlg(prompt,dlg_title,num_lines,def);
     
    %on demande si il y'a des infos supplémentaires
    button=questdlg('avez vous des informations sur la localisation des images ?','infos supplémentaires','oui','non','default');
     
    if button=='non'
       for n=1:numel(list) 
        fid=fopen(fullfile(rep,nom{n}),'w+');
        fprintf(fid,'ENVI\ndescription = {\n \bFile Imported into ENVI.}\nsamples = %s\nlines \b\b= %s\nbands \b\b= %s\nheader offset = %s\nfile type = ENVI Standard\ndata type = 2\ninterleave = bsq\nsensor type = Unknown\nbyte order = 0\nwavelength units = Unknown',answer1{1},answer1{2},answer1{3},answer1{4})
        fclose(fid);
       end
    else 
        %alors poser les question sur latt,long,pas... et les implementer dans
        %les .hdr
    end
    et mon problème se situe au niveau de la fonction fprintf où \b qui devrait servir à faire un espace et \n qui devrait servir à revenir à la ligne ne fonctionnent pas.

    et quand je l'édit avec bloc note, j'obtiens ça :


    au lieu de ça:



    ma version de matlab :
    MATLAB 7.0.0.19920 (R14)
    C'est moi où il fait chaud là ?

  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 302
    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 302
    Points : 52 884
    Points
    52 884
    Par défaut
    Il faut toujours utiliser l'argument "t" de FOPEN lorsqu'on travaille sur des fichiers txt :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fid=fopen(fullfile(rep,nom{n}),'wt+');
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  3. #3
    Membre régulier Avatar de Flaherty Mc Coillean
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Décembre 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 108
    Points : 75
    Points
    75
    Par défaut
    ok merci ça marche, je ne savais pas pour l'argument t
    C'est moi où il fait chaud là ?

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

Discussions similaires

  1. Problème avec une fonction date.
    Par kmayoyota dans le forum ASP
    Réponses: 8
    Dernier message: 09/09/2004, 12h33
  2. Problème avec la fonction findfirst ()
    Par Angelico dans le forum Windows
    Réponses: 3
    Dernier message: 05/08/2004, 20h40
  3. [Requete SQL en VBA] Problème avec la fonction FLOOR
    Par zubral dans le forum Langage SQL
    Réponses: 4
    Dernier message: 13/07/2004, 13h24
  4. Problème avec les fonctions
    Par jvachez dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 13/01/2004, 12h06
  5. [Postgresql]Problème avec les fonctions ...
    Par fet dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/10/2003, 09h04

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