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 :

gérer les colonnes avec fprintf


Sujet :

MATLAB

  1. #1
    Membre habitué
    Homme Profil pro
    Ingénieur Photonique
    Inscrit en
    Mars 2013
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Photonique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2013
    Messages : 124
    Points : 126
    Points
    126
    Par défaut gérer les colonnes avec fprintf
    Bonjour,

    ce n'est pas réellement un problème car ça ne m’empêche pas d'avancer dans mon programme. J'ai juste du mal à bien jouer avec fprintf pour avoir le rendu que je veux.

    Dans mon programme je crée 2 variables x et y que j'incrémente dans une boucle. Je souhaite écrire les données finales dans un .txt.

    Mon programme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    fprintf(nom_fichier,'%s %6s\n','x','y');
    x = 0:50:1000;
    for ii = 1:10
        y = 10 + ii  % pour l'exemple
        fprintf(nom_fichier,'%.0f %4.5f\n',x(ii),y(ii));
    end
    close(nom_fichier)
    Ce programme fonctionne cependant c'est dans la mise en page que je bloque. La 1ere colonne de mon fichier concerne les x et on voit bien qu'il faut seulement une colonne pour écrire "0" et 4 pour écrire "1000". Et bien ce décalage quand on regarde les x se reproduit sur les y.
    Je n'arrive pas à voir l'astuce pour imposer à la colonne des "y" à commencer à partir de la colonne n°... Elle semble toujours liée à celle des x. Et ce malgré la consigne 4 dans %4.5f\n.

    Je pourrais me contenter de la fonction "save" de matlab mais le nombre d'options est moins grand.

    Avez-vous des idées ?

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

    Il te faut imposer une longueur minimale au format, ici x allant jusqu'à 1000, on peut par exemple fixer cette limite à 4 caractères.
    Il vient donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    x = 0:50:1000;
    for ii = 1:10
        y = 10 + ii  % pour l'exemple
        fprintf(nom_fichier,'%4.0f %4.5f\n',x(ii),y(ii));
    end
    Remarque : c'est fclose(nom_fichier), nom_fichier n'étant pas forcément le nom que j'aurais choisi pour désigner l'identifiant du fichier...

  3. #3
    Membre habitué
    Homme Profil pro
    Ingénieur Photonique
    Inscrit en
    Mars 2013
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Photonique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2013
    Messages : 124
    Points : 126
    Points
    126
    Par défaut
    En effet ça fonctionne. Merci !

    Autant pour moi le fclose est une faute de frappe.
    Pour ôter l’ambiguïté sur le nom_fichier, voici le programme final :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    M = fopen('nom.txt','wt');
    fprintf(M,'%s %6s\n','x','y');
    x = 0:50:1000;
    for ii = 1:10
        y = 10 + ii  
        fprintf(M,'%4.0f %4.5f\n',x(ii),y(ii));
    end
    fclose(M)
    Par contre du coup j'imagine que l'alignement à gauche et non à droite n'est pas possible ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Alors laisse-moi te dire que tu as une mauvaise imagination
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     fprintf(M,'%-4.0f %4.5f\n',x(ii),y(ii));

  5. #5
    Membre habitué
    Homme Profil pro
    Ingénieur Photonique
    Inscrit en
    Mars 2013
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Photonique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2013
    Messages : 124
    Points : 126
    Points
    126
    Par défaut
    Impeccable ! t'es un chef.
    Ça sera tout pour moi. Merci bien

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

Discussions similaires

  1. gérer les alias avec outlook
    Par Chico_Latino dans le forum Outlook
    Réponses: 3
    Dernier message: 02/02/2006, 17h40
  2. Gérer les dates avec SQL Server 2000
    Par saby dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 25/01/2006, 18h06
  3. Gérer les coupures avec LWP
    Par siaoly dans le forum Modules
    Réponses: 12
    Dernier message: 31/08/2005, 16h54
  4. Où gérer les transactions avec Firebird ?
    Par DMO dans le forum Débuter
    Réponses: 2
    Dernier message: 26/04/2005, 09h21
  5. Gérer les queue avec sql server ?
    Par devdev dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 17/06/2004, 17h38

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