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 fprintf [Débutant]


Sujet :

MATLAB

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 70
    Par défaut Problème fprintf
    Bonjour,
    j'aurais besoin que quelqu'un qui s'y connaisse en matlab me vienne en aide.
    ça fait deux jours que je suis bloqué sur mon problème sans trouver la réponse et j'ai vraiment besoin de trouver.

    Je voudrais écrire le résultat qu'une fonction me donne dans un fichier. J'essaye d'utiliser fprintf mais sans résultats. J'essaye de changer le format mais sans résultat

    Réponse de matlab :
    ??? Error using ==> fprintf
    Function is not defined for 'one_vs_rest' inputs.
    Quelqu'un aurait-il une idée.
    MERCI

  2. #2
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Sans les lignes de code que tu as essayé il va être difficile de t'aider.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 70
    Par défaut ce que j'ai essayé
    J'ai essayer la fonction fprintf en changeant le format mais ça me mets toujours la même erreur.
    J'ai aussi essayé sprintf mais sans succès.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    cd('U:\test')
    fid = fopen('toto.txt','Wt+');
    frpintf(fid,'%c%,a);
    ??? Error using ==> fprintf
    Function is not defined for 'one_vs_rest' inputs.

  4. #4
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Tu as une faute de frappe (frpintf au lien de fprintf) mais vu le message d'erreur il s'agit d'une faute de recopie.

    Manifestement le problème vient de la variable a.

    J'ai peut-être été trop succincte tout à l'heure : pour pouvoir aider sur un problème, il nous faut toutes les informations.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 70
    Par défaut
    J'ai tapé ceci

    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
    >> whos a
      Name      Size               Bytes  Class          Attributes
     
      a         1x1             23712414  one_vs_rest  
     
    J'ai l'objet a suivant qui est de classe one_vs_rest
    >> a
    one-vs-rest
      {
       1:gridsel(svm kernel rbf=8 C=8)
       2:gridsel(svm kernel rbf=9 C=8)
       3:gridsel(svm kernel rbf=8 C=8)
       4:gridsel(svm kernel rbf=8 C=8)
       5:gridsel(svm kernel rbf=8 C=8)
       6:gridsel(svm kernel rbf=11 C=8)
       7:gridsel(svm kernel rbf=12 C=8)
       8:gridsel(svm kernel rbf=12 C=8)
       9:gridsel(svm kernel rbf=10 C=8)
      }
    Je voudrais pouvoir garder dans cet objet uniquement les chiffres de chaque ligne.
    Faire un vecteur avec les chiffres donnant la valeur de rbf et un autre avec les chiffres donnant la valeurs de C.

    J'ai donc pensé mettre ce résultats dans un fichier pour pouvoir y "travailler dessus" mais si il y a une autre possibilité je serais ravie de la connaître. Mes connaissances en matlab sans assez minces et là j'ai atteint les limites.

  6. #6
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Je ne connais pas du tout cette classe.
    FPRINTF ne peux écrire que du texte ou des nombres.
    C'est donc à toi de récupérer les informations qui t'intéressent dans ta variable pour les mettre en forme et ensuite les écrire dans ton fichier.

    Pour cela je peux juste conseiller la fonction suivante :

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 70
    Par défaut
    Merci je crois que je viens de trouver grâce à toi.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 70
    Par défaut
    J'ai utilisé la fonction display que transforme la classe de a de one_vs_rest en char.

    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
    >> b=display(a)
    one-vs-rest
      {
       1:gridsel(svm kernel rbf=8 C=8)
       2:gridsel(svm kernel rbf=9 C=8)
       3:gridsel(svm kernel rbf=8 C=8)
       4:gridsel(svm kernel rbf=8 C=8)
       5:gridsel(svm kernel rbf=8 C=8)
       6:gridsel(svm kernel rbf=11 C=8)
       7:gridsel(svm kernel rbf=12 C=8)
       8:gridsel(svm kernel rbf=12 C=8)
       9:gridsel(svm kernel rbf=10 C=8)
      }
     
    b =
     
    one-vs-rest\n  {\n   1:gridsel(svm kernel rbf=8 C=8)\n   2:gridsel(svm kernel rbf=9 C=8)\n   3:gridsel(svm kernel rbf=8 C=8)\n   4:gridsel(svm kernel rbf=8 C=8)\n   5:gridsel(svm kernel rbf=8 C=8)\n   6:gridsel(svm kernel rbf=11 C=8)\n   7:gridsel(svm kernel rbf=12 C=8)\n   8:gridsel(svm kernel rbf=12 C=8)\n   9:gridsel(svm kernel rbf=10 C=8)\n  }
    Du coup je peux écrire dans un fichier le résulat.
    Mais je me dis que je ne suis pas obligée de passer par un fichier.
    Je veux parcourir b dès que je rencontre le premier chiffre je le stocke dans un premier vecteur RBF le second chiffre sera stocké dans un second vecteur C, le troisième dans RBF, le quatrième dans C ....
    Aurais-tu une idée de la marche à suivre?
    MERCI

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 70
    Par défaut
    j'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for i = 1:length(b)
        isinteger (b(i))
    end
     
    >> ans = 
    0
    pour chaque b(i)
    donc les chiffre sont transformé en caractère je ne vois pas comment lui dire que 8 est un caractère que je veux mettre de côté.

  10. #10
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Mais tu es sur qu'il n'y a pas de méthode dédiée pour récupérer directement tes valeurs ?

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 70
    Par défaut
    oui

  12. #12
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Peux-tu nous dire :
    - comment tu as créé ou récupéré cette variable ?
    - nous montrer ce que donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    methods one-vs-rest -full

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 70
    Par défaut
    C'est en utilisant la toolbox use-spider

  14. #14
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Je veux bien essayé de t'aider, mais plus tu feras des réponses courtes à mes questions, plus je serais dans l'incapacité de t'aider.

    Je t'ai donné une piste pour traiter la chaine de caractères, si ça fonctionne tant mieux dans ce cas tu passes le post en résolu.
    Et si tu veux qu'on essaye ensemble de trouver une meilleure solution il va falloir faire un effort, sinon cela va être très difficile.

    [EDIT]Je viens de voir qu'en fait tu as mis en Résolu.
    Dans ce cas il serait intéressant de nous dire quelle solution tu as trouvée.

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 70
    Par défaut
    en fait je pensais avoir touvé mais c'est pas encore ça je suis sur la voie
    Je te dirais quand j'aurais trouvé.
    Merci pour les indications


    Je n'arrive pas à comprendre comment focntionne textscan. J'ai lu l'aide mais je suis larguée avec les formats.
    Qu'est ce que je dois mettre si par exemple j'ai un fichier comme ça:

    Julien age=18 taille=32
    Marc age=25 taille=39
    julie age=12 taille=29

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    fid = fopen('essai');
    C = textscan(fid, '......');
    fclose(fid);
    c'est les ..... qui pose problème j'ai un chaine de carctère après j'en ai une autre qui est suivie par des chiffres. Je ne comprends pas les exmples qu'ils donnent dans l'aide.

  16. #16
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    C'est vrai que ce n'est pas forcément très facile au début.
    Moi-même j'ai un peu du mal.

    Je n'ai malheureusement pas le temps maintenant de chercher.

    Essaye de chercher sur le Forum TEXTSCAN, TEXTREAD, tu devrais toruver des exemples.

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 70
    Par défaut
    J'ai essayé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    fid2 = fopen('toto.txt');
    C = textscan(fid2,'%s age=%f taille=%f ');
    C{:}
    fclose(fid2);
    ça dit que C{2} et C{3} sont vides

  18. #18
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Pas mal effectivement.

    Ca fonctionne pourtant sur une chaine de caractères :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    S='Julien age=18 taille=32';
    C=textscan(S,'%*s age=%f taille=%f ') %* pour dire d'ignorer
    Essaye en utilisant l'option 'delimiter' à '\n'

  19. #19
    Membre expérimenté
    Inscrit en
    Novembre 2006
    Messages
    236
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 236
    Par défaut
    Citation Envoyé par 8twilight8 Voir le message
    J'ai essayé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    fid2 = fopen('toto.txt');
    C = textscan(fid2,'%s age=%f taille=%f ');
    C{:}
    fclose(fid2);
    ça dit que C{2} et C{3} sont vides
    que trouves tu dans C{1} ?

  20. #20
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 70
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    c{1}
    >>ans = 
     
        'Julien'
    et avec le delimiter en plus ça ne marche pas

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Problème matriciel avec fprintf
    Par jonathan86 dans le forum MATLAB
    Réponses: 1
    Dernier message: 06/03/2008, 06h46
  2. Réponses: 2
    Dernier message: 07/05/2007, 08h06
  3. Etrange problème avec un fprintf
    Par f56bre dans le forum C
    Réponses: 14
    Dernier message: 13/01/2007, 14h27
  4. problème de fprintf
    Par Andrey dans le forum C
    Réponses: 3
    Dernier message: 18/12/2006, 23h11

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