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 :

Sauver valeur d'une boucle for dans un fichier texte


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 17
    Points : 11
    Points
    11
    Par défaut Sauver valeur d'une boucle for dans un fichier texte
    Bonjour,

    Je n'arrive pas à sauvegarder les résultats que j'obtiens avec ma boucle for dans une matrice.

    En fait, le problème vient de ma matrice. J'aimerais qu'elle ait donc 10 colonnes de 1 ligne. 1ere colonne tSVET, et les 9 autres Gc(n)
    tSVET Gc(1) Gc(2) Gc(3) Gc(4)...

    Merci de votre aide


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    tSVET=2
    for n=2:10
        Gc(n)=4*n
        matrice=[tSVET,Gc(n)]
        fprintfMat('c:\user\U424515\Stage\Programme scilab\Module\resultat.txt',matrice)
    end

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

    Dans ta boucle, tu ne fais que générer un vecteur de 2 valeurs [tSVET,Gc(n)], tu n'ajoutes pas les résultats au fur et à mesure.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    tSVET=2;
    matrice = tSVET;
    for n=2:10
        Gc(n)=4*n;
        matrice = [matrice , Gc(n)];
    end
    // Sauvegarde seulement à la fin
    fprintfMat('c:\user\U424515\Stage\Programme scilab\Modul\resultat.txt',matrice)
    Une autre méthode sans boucle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    tSVET=2;
    Gc = 4*(2:10);
    matrice = [tSVET Gc];
    fprintfMat('c:\user\U424515\Stage\Programme scilab\Modul\resultat.txt',matrice)

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 17
    Points : 11
    Points
    11
    Par défaut
    Merci bien Winjerome.
    Cela fonctionne.

    Et j'ai une autre question qui en découle et qui ressemble à la précédente.

    Car en vrai, la fonction Gc est dépendante de tSVET qui représente un temps.
    En fait je fais varier maintenant le tSVET de 1 à 100 par une boucle for. Et je voudrais qu'à chaque ligne de ma matrice, il y ait un tSVET et les Gc correspondants.

    tSVET Gc(1) Gc(2)...
    1 8 . ..
    2 ....
    3....

  4. #4
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 17
    Points : 11
    Points
    11
    Par défaut
    Alors j'ai essayé de refaire un peu la mémé chose. mais ça ne fonctionne pas, et je ne vois pas où ça cloche :s

    Alors j'obtiens de bons résultats, mis à part qu'ils sont tous alignés sur une ligne, et que la matrice2 commence par 1, car j'initialise à 1. Comment dois-je faire pour modifier ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    matrice2=1
    for tSVET=4:19
     
    matrice=tSVET
    for n=2:10
        Gc(n)=4*n;
        matrice = [matrice , Gc(n)];
    end
     
    matrice2=[matrice2,matrice]
    end
     
    fprintfMat('c:\user\U424515\Stage\Programme scilab\Module\resultat.txt',matrice2)

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 17
    Points : 11
    Points
    11
    Par défaut
    ok, donc j'ai réussi à enlever le chiffre qui génait de la matrice en initialisant de la manière suivante:

    Mais la matrice est tjs écrite sur une ligne

  6. #6
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 17
    Points : 11
    Points
    11
    Par défaut
    ok, c est bon j'ai réussi

    J'ai remplacé une , par ;.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    matrice2=[]
    for tSVET=4:19
     
        matrice=tSVET
        for n=2:10
            Gc(n)=4*n;
            matrice = [matrice , Gc(n)];
        end
     
        matrice2=[matrice2;matrice]
    end
     
    fprintfMat('c:\user\U424515\Stage\Programme scilab\Module\resultat.txt',matrice2)

  7. #7
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 17
    Points : 11
    Points
    11
    Par défaut
    Alors comme j'en veux toujours plus

    Je voudrais pouvoir écrire des lignes de caractères sur la toute première ligne de ma matrice.

    Quelqu'un sait il ?

  8. #8
    Invité
    Invité(e)
    Par défaut
    Les valeurs de Gc ne changeant pas, tu peux l'initialiser avant ta boucle principale au lieu de la recalculer à chaque fois.
    Pour information ton code se simplifie en :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Gc = 4*(2:10);
    matrice2 = [(4:19).' repmat(Gc,16,1)]
    En ce qui concerne ta nouvelle question, tu ne peux pas mélanger plusieurs types au sein d'un même tableau.
    Utilise une autre variable.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 17
    Points : 11
    Points
    11
    Par défaut
    Merci.

    A mince, ca veut donc dire que je ne peux pas, que ce soit dans un fichier .txt ou excel, ecrire une partie en lettre, et une autre en nombre ?

Discussions similaires

  1. Utiliser une boucle "For" dans un" Select Case"
    Par Novice_vba dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/04/2014, 09h34
  2. Imbriquer une boucle for dans une condition if ?
    Par helkøwsky dans le forum Langage
    Réponses: 2
    Dernier message: 28/06/2010, 15h18
  3. Réponses: 12
    Dernier message: 22/04/2009, 13h02
  4. [Tableaux] Utiliser une boucle for dans un echo
    Par maoboy dans le forum Langage
    Réponses: 7
    Dernier message: 18/06/2007, 13h55
  5. Une boucle for dans un switch case?
    Par Death83 dans le forum Langage
    Réponses: 4
    Dernier message: 26/04/2006, 14h05

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