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

Octave Discussion :

lire et ecrire


Sujet :

Octave

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2011
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Septembre 2011
    Messages : 20
    Points : 12
    Points
    12
    Par défaut lire et ecrire
    Bonjour, voilà j'ai un fichier "paramini" comportant plusieurs colonnes séparé avec des tabulation, je veux copier 3 colonne de ce fichier et les sauvegarder dans un nouveau fichier "param.dat" en utilisant Octave, voici le code que j'utilise, mais je ne comprend pas mon erreur, Merci pour votre aide.

    Edit : j'ai changer mon code mais ça ne tourne tjrs pas, j'ai loupé un truc, help svp

    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
     
    clear all; close all; clc
    dt=1.e-4;
     
       fid = fopen('~/Desktop/Scripts/paramini');     
       a=fscanf(fid,'%g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g',[31 inf]);
       a=a';
     
       fileID = fopen(['~/Desktop/Scripts/param.dat'],'w');   
             b = [a(:,1) a(:,5 a(:,18)];
            for j=1:length(b)
                fprintf(fileID,'%12.8f \t', b(j));            
            end
            fprintf(fileID,'\n');        
        fclose(fid);
    fclose(fileID);

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

    Je te conseille de regarder ce que retourne size(a)

  3. #3
    Membre à l'essai
    Inscrit en
    Septembre 2011
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Septembre 2011
    Messages : 20
    Points : 12
    Points
    12
    Par défaut
    Salut et Merci pour ta réponse, effectivement en faisant un size (a) j'ai je n'y comprends rien, je fais un scanf pour mes 31 colonnes.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bon c'est pas le résultat auquel je m'attendais
    En fait, contrairement à ce le paramètre [31 Inf] pourrait faire penser, on obtient un tableau de taille Nx31 et non 31xN à la sortie de fscanf, il aurait donc fallu faire b = [a(1,:) a(5,:) a(18,:)];.

    Mais là tu as déjà un problème avec fscanf... Pourrais-tu fournir un extrait du fichier en question ?

  5. #5
    Membre à l'essai
    Inscrit en
    Septembre 2011
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Septembre 2011
    Messages : 20
    Points : 12
    Points
    12
    Par défaut
    Voici un extrait du fichier en question, en le créant j'ai pris une précision important. voici un extrait, dsl je n'ai pas pu le télécharger j'ai "fichier non valide" comme erreur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    0 3.1392 8.10806 0.60006 5.52527e-17 2.56741e-16 0 0 0 0 0 0.0675671 0.6 0.6 3.1392 8.10806 0.60006 1.27625 9.58499e-17 0 0 0 0 0 0.0675671 0.6 0.6
    0.1 3.1415927866429865 8.1098689600342837 0.60024987917525219 0.71162063109530449 1.9646542084305667e-14 -0.29266718797685742 1.2434497875801753e-14 7.2168181795473236 2.2618079435529148e-14 -5.3527030432634896e-14 0.06715072589347848 0.60024987917525208 0.60024987917525208 3.1415926862356809 8.1092804316601583 0.60033698902684673 1.992505608844598 1.1549876799089207e-14 -0.27359667885204741 0 7.3415876501518111 3.1355288592815592e-14 -2.83741231780855e-14 0.067225872863793806 0.60033698902684662 0.60033698902684662 -0.0030105329369892486 -32.050072063650795
    0.20000000000000001 3.1415928507337685 8.1105934628092751 0.60014265801291777 1.438953259619391 2.1104329246246753e-14 -0.22782757409370191 1.7319479184152442e-14 7.3238620205662635 2.0519999066451614e-15 -8.1446900609805862e-14 0.067249095437480935 0.60014265801291777 0.60014265801291777 3.1415928438654475 8.1102395045403508 0.60019504235265475 2.7393405249657339 1.4007424926374927e-14 -0.22957198138387502 -1.1102230246251565e-15 7.5781811054428738 3.1343024966578248e-14 -3.709760229706919e-15 0.067360526588523872 0.60019504235265475 0.60019504235265475 -0.0023040092342806059 -16.509065543482439
    0.29999999999999999 3.1415929309256345 8.1110578437552867 0.60007395557670595 2.1757012486116825 2.1164715933425675e-14 -0.19951781303625404 1.5765166949677223e-14 7.4164035392237881 1.0048107154246211e-14 -5.0829537667761521e-14 0.067296728566910519 0.60007395557670595 0.60007395557670595 3.1416326210990624 8.1105412071108027 0.60015798888302807 3.5048897625046984 1.6125221358370039e-14 -0.2029674927192322 1.2045919817182948e-14 7.7223959201193635 1.1451405341775412e-14 -4.9963546653693249e-15 0.067442186853982136 0.60015798888302807 0.60015798888302807 -0.0018590128099040923 -8.8870532765847923
    0.40000000000000002 3.1415930112648738 8.1111137481037225 0.60006569915347696 2.9211917618039167 2.2408437677432223e-14 -0.18207894563331761 -3.219646771412954e-15 7.4925282712419445 2.353082716482594e-14 -6.9731868823503676e-14 0.067331987752343794 0.60006569915347696 0.60006569915347696 3.1416107181901047 8.1112835739594367 0.60004395428042934 4.283923365093897 1.7075019145752887e-14 -0.19425990107381508 1.6986412276764895e-14 7.8539073172255964 3.4930219527023141e-14 3.5073937123039494e-14 0.067478623703117843 0.60004395428042934 0.60004395428042934 -0.0015848647212354146 -4.5199227427766786
    0.5 3.1415930832221965 8.1112275364781183 0.60004887696940556 3.6740605049091961 2.2536443489280132e-14 -0.17124869991301606 1.099120794378905e-14 7.5620881379031841 3.343553088205168e-14 -3.0728403057050653e-15 0.067358654704348347 0.60004887696940556 0.60004887696940556 3.1415934147097122 8.1113994015582254 0.60002351276859289 5.0744950163427127 1.8238186866113743e-14 -0.1855138717227558 4.2188474935755949e-15 7.956742702762976 1.2350982268900104e-14 -8.6913686003618964e-15 0.067496966361834318 0.60002351276859289 0.60002351276859289 -0.0013867813354766592 -1.6319870976166551
    0.59999999999999998 3.1416055587888061 8.1111986762988657 0.60005552987231103 4.4335594844500568 2.2639180175622517e-14 -0.16219988031479304 5.3845816694320092e-15 7.6244325208141381 -1.5304800972338825e-14 7.2379676401869334e-14 0.067382048664048191 0.60005552987231103 0.60005552987231103 3.1415914640650207 8.1114464123587489 0.60001618522527611 5.8743171665812124 1.8867688469395149e-14 -0.17571498989449452 -1.8318679906315083e-15 8.0398524067133081 -1.9972067586823021e-14 -3.528538329640965e-14 0.06751123879800365 0.60001618522527622 0.60001618522527622 -0.0012291284407271988 0.53745170907234319
    0.70000000000000007 3.1416187528020383 8.1112316528199546 0.60005317085830645 5.1989291150200554 2.1841792558466319e-14 -0.15572465689595183 5.9396931817445875e-15 7.6805856512562078 8.4990681916169075e-16 -2.6827456314957849e-15 0.067403374184486622 0.60005317085830645 0.60005317085830645 3.141579045097072 8.1114864297945175 0.60000789307672053 6.6821373664705987 1.9243989201403535e-14 -0.16644500323380096 7.382983113757291e-15 8.1152132312130938 -1.1590363161887292e-14 1.4234529708008306e-14 0.067517911299346131 0.60000789307672053 0.60000789307672053 -0.0011033215617328777 2.2257376112520162
    0.80000000000000004 3.1416187454134947 8.1114188595308523 0.60002547202796275 5.9704251913326276 2.1085072772754996e-14 -0.15379266926005264 -2.8033131371785203e-15 7.7448975698466809 -3.7893549064692263e-14 -4.4332717111946407e-14 0.067416793134410291 0.60002547202796275 0.60002547202796275 3.1415839553911513 8.1114602564716751 0.60001270300439824 7.4968834562705027 2.009265099769673e-14 -0.15507735932396449 -1.6653345369377348e-15 8.1811137262739297 1.5825272357454472e-14 -2.3706043275211674e-14 0.067528317793256451 0.60001270300439824 0.60001270300439824 -0.00099732901068523994 3.4822280563950212
    0.90000000000000002 3.1416176437005929 8.1114591139143446 0.6000193061856276 6.7479693732485186 1.993867402164872e-14 -0.15292014822921307 -1.4710455076283324e-15 7.8050860639933584 -3.3330212226209381e-14 -7.8646041481649929e-14 0.067425719287727268 0.6000193061856276 0.6000193061856276 3.1415864148240558 8.1114470689049014 0.60001512373361521 8.3180773857883565 2.0542647544012686e-14 -0.14286491660189249 -2.0539125955565396e-14 8.2422698430005017 -4.6998128427919425e-15 -5.8895652457324295e-14 0.067536566367178613 0.6000151237336151 0.6000151237336151 -0.00091142150356650592 4.4521399362187717
    c'est pas très lisible mais bon juste pour avoir une idée.

  6. #6
    Membre à l'essai
    Inscrit en
    Septembre 2011
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Septembre 2011
    Messages : 20
    Points : 12
    Points
    12
    Par défaut
    C'est bon j'ai remis le fichier initial, pour size(a) j'ai bien ans= 31 9653 . mais je n'arrive tjrs pas à copier ces 3 colonnes tel quel dans l'autre fichier.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Quelle est la disposition d'arrivée souhaitée ?
    ceci :
    a(1,1)	a(5,1)	a(18,1)
    a(1,2)	a(5,2)	a(18,2)
    ...
    ?
    Dans ce cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    fid = fopen('~/Desktop/Scripts/paramini');
        a = fscanf(fid, '%g', [27 inf]);
    fclose(fid);
     
    fileID = fopen('~/Desktop/Scripts/param.dat','w'); % crochets inutiles
        fprintf(fileID, '%12.8f\t%12.8f\t%12.8f\n', a([1 5 18],:) );
    fclose(fileID);

  8. #8
    Membre à l'essai
    Inscrit en
    Septembre 2011
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Septembre 2011
    Messages : 20
    Points : 12
    Points
    12
    Par défaut
    Merci beaucoup pour ton aide Winjerome, oui la disposition souhaitée était bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    a(1,1)     a(5,1)      a(18,1)
     a(1,2)     a(5,2)      a(18,2)
     a(1,3)     a(5,3)      a(18,3)
    mais je viens de résoudre le problème, Merci pour le tuyau du size j'avais effectivement une erreur sur ma 1ère ligne, et le mon fichier paramini était corrompu, Bref Merci du coup de main et à bientôt.

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

Discussions similaires

  1. lire et ecrire des donnée dans un .ini
    Par gsmdu62 dans le forum Delphi
    Réponses: 6
    Dernier message: 25/05/2006, 03h29
  2. [VB6] Usb (Lire et ecrire)
    Par Bouassa dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 10/05/2006, 21h54
  3. Réponses: 54
    Dernier message: 16/03/2006, 11h42
  4. lire et ecrire
    Par ax07 dans le forum Windows
    Réponses: 6
    Dernier message: 24/11/2005, 09h07
  5. [JAR] Lire et Ecrire dans un fichier contenu dans un jar
    Par lipao17 dans le forum Général Java
    Réponses: 5
    Dernier message: 02/05/2005, 12h01

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