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 confirmé
    Inscrit en
    Novembre 2008
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 229
    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 316
    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 316
    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 confirmé
    Inscrit en
    Novembre 2008
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 229
    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
    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.
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  5. #5
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 229
    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 316
    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 316
    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