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 :

[fprintf] écrire un vecteur


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 002
    Par défaut [fprintf] écrire un vecteur
    Bonjour !

    Je récupère un vecteur (1*n) ou n aléatoire (comprit entre 1 et 5), j'aimerais l'écrire dans un fichier texte.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    A =[5 8 6 4];
    B='vecteur 1' ;
    fid = fopen('TEST.txt','at');
    fprintf(fid,'%s %1.0f \n', B,[A]); << faux évidemment
    fclose(fid)

    Merci pour votre aide.

  2. #2
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Par défaut
    Une solution:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    fprintf(fid,'%s [%s] \n', B,sprintf('%1.0f ', A));

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 002
    Par défaut
    Merci. Malheureusement cette solution "colle" les valeurs de A, un moyen de s'en défaire est de mettre un espace (en rouge) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    A =[5.23 NaN 6.12 4];
    B='coucou' ;
    fid = fopen('TESTETS.txt','at');
    fprintf(fid,'%s %s \n', B,sprintf('%_1.3f', A));
    fclose(fid)
    Seulement comme dans l'exemple ci dessus, si les nombres sont maintenant bien espacés, les NaN sont collés... :

    fichier .txt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    coucou  5.230NaN 6.120 4.000

  4. #4
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Par défaut
    J'ai vu ca en effet, j'ai édité ma réponse entre temps et maintenant ca doit fonctionner ;-)

    Sinon les solutions de Dut sont pas mal non plus

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 002
    Par défaut
    A DUT

    Ta 1ère idée me retourne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    >> A =[5 8 6 4];
    B='vecteur 1' ;
    str = strcat(B,{' '},num2str(A,'% 1.0f'))
    fid = fopen('TEST.txt','at');
       fprintf(fid,'%s\n',str);
    fclose(fid)
     
    str = 
     
        'vecteur 1 5 8 6 4'
     
    ??? Error using ==> fprintf
    Function is not defined for 'cell' inputs.
    2ème idée, parfaite, merci

    A re-DUF,

    Ok j'ai vu l'édit Merci !

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 002
    Par défaut
    Aie pas tout à fait résolu finalement, j'aurais juste besoin d'aller à la ligne mais alors maintenant je suis un peu perdu pour placé le \n

    merci...

  7. #7
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    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 317
    Par défaut
    Il y a plusieurs solutions à ce type de problème... en voici une :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    A =[5 8 6 4];
    B='vecteur 1' ;
     
    str = strcat(B,{' '},num2str(A,'% 1.0f'))
     
    fid = fopen('TEST.txt','at');
       fprintf(fid,'%s\n',str);
    fclose(fid)
    ou encore une :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    A =[5 8 6 4];
    B='vecteur 1' ;
     
    fmt = ['%s' repmat(' %1.0f',1,numel(A))];
     
    fid = fopen('TEST.txt','at');
       fprintf(fid,fmt, B,A)
    fclose(fid)

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

Discussions similaires

  1. [Débutant] [fprintf] Écrire un tableau de deux colonnes dans un fichier
    Par Beltharion dans le forum MATLAB
    Réponses: 5
    Dernier message: 24/04/2015, 20h38
  2. Quelle commande utiliser pour écrire des vecteurs en colonne ?
    Par minimel dans le forum Mathématiques - Sciences
    Réponses: 2
    Dernier message: 18/05/2007, 18h24
  3. Un langage pour lire, traiter et écrire de gros fichiers
    Par March' dans le forum Langages de programmation
    Réponses: 19
    Dernier message: 07/04/2003, 15h26
  4. Zoom sur des vecteurs ou lignes
    Par mat.M dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 25/11/2002, 10h40
  5. matrices * vecteur
    Par delire8 dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 07/09/2002, 14h15

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