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 :

Ecriture dans un fichier spécifique


Sujet :

MATLAB

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 229
    Points : 74
    Points
    74
    Par défaut Ecriture dans un fichier spécifique
    Bonjour,

    je voulais copier le contenu d'une matrice dans un fichier texte sauf qu'il faut tester si chaque ligne contient plusieurs 0 successifs ou non. Si oui on va pas les écrire dans le fichier. On ne va écrire qu'un seul zéro par ligne.

    Par exp si on la matrice suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    6 7 8 9 0
    6 0 0 0 0
    4 5 0 0 0
    le fichier devra contenir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    6 7 8 9 0
    6 0 
    4 5 0
    j'ai écrit ce bout de code mais il fait pas le test de 0 cad il écrit exactement le contenu de ma matrice,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    fid = fopen('fichier.txt','wt');
    fprintf(fid,'%s %s','k dlf');
    fprintf(fid, '%d %d \n',1,2);
    for k=1:N
         xx=size(clause{k},2) % nb colonnes    
         fmt= repmat('%d ' ,1,xx); 
         fmt(end)=''; 
         fmt = [fmt,'\n'];
         fprintf(fid,fmt,  clause{k}'); 
    end 
     
    fclose(fid);
    Est ce que vous pouvez m'aider à modifier ce code pour répondre à mes besoins.

    Merci d'avance

  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 318
    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 318
    Points : 52 956
    Points
    52 956
    Par défaut
    Une ligne peut-elle commencer par un 0, avoir des 0 entre des valeurs non nulles ou ne contenir que des 0 ?

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    6 7 0 8 9 0
    0 6 0 0 0 0
    0 0 0 0 0
    4 5 0 0 0

  3. #3
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 229
    Points : 74
    Points
    74
    Par défaut
    Citation Envoyé par Dut Voir le message
    Une ligne peut-elle commencer par un 0, avoir des 0 entre des valeurs non nulles ou ne contenir que des 0 ?

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    6 7 0 8 9 0
    0 6 0 0 0 0
    0 0 0 0 0
    4 5 0 0 0
    Non elle contient des 0 qu'à la fin soit un seul zéro et dans ce cas on va le laisser dans le fichier et s'il y a plusieurs on garde un seulement

    merci.

  4. #4
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Bonjour,

    voici un code qui devrait fonctionner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    fid = fopen('fichier.txt','wt');
    fprintf(fid,'%s %s','k dlf');
    fprintf(fid, '%d %d \n',1,2);
    for k=1:N
        for m=1:size(clause{k},1)
            n = find(clause{k}(m,:)==0,1,'first');
            for p=1:n
                fprintf(fid,'%d ',  clause{k}(m,p)); 
            end
            fprintf(fid,'\n',  clause{k}(m,p));
        end
    end 
     
    fclose(fid);
    J'ai supposé que clause contenait des tableaux de plusieurs lignes, le code peut être simplifié si clause contient des vecteurs.

  5. #5
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 229
    Points : 74
    Points
    74
    Par défaut
    oui ca fonctionne
    merci beaucoup

  6. #6
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 318
    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 318
    Points : 52 956
    Points
    52 956
    Par défaut
    Citation Envoyé par magelan Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
            for p=1:n
                fprintf(fid,'%d ',  clause{k}(m,p)); 
            end
    devient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fprintf(fid,'%d ',  clause{k}(m,1:n));
    sauf si une ligne peut ne pas avoir de 0 du tout ?

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

Discussions similaires

  1. Ecriture dans une ligne spécifique d'un fichier texte
    Par X-plode dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 15/07/2007, 09h46
  2. Script shell - écriture dans un fichier
    Par Leishmaniose dans le forum Linux
    Réponses: 6
    Dernier message: 13/12/2004, 23h48
  3. Probleme d'ecriture dans un fichier en mode Text
    Par bbozet dans le forum C++Builder
    Réponses: 3
    Dernier message: 14/01/2004, 14h46
  4. [LG]ecriture dans un fichier binaire
    Par jsaviola dans le forum Langage
    Réponses: 3
    Dernier message: 26/12/2003, 18h30
  5. Réponses: 2
    Dernier message: 26/09/2003, 15h51

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