WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Text File Grösse

 

noppoel
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 52
Anmeldedatum: 27.10.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.01.2010, 12:17     Titel: Text File Grösse
  Antworten mit Zitat      
Hallo,

bei der Umwandlung eines meiner text files steigt die Grösse erhablich an. Es handelt sich um sehr grosse files d.h. die Eingabedatei hat eine Grösse von 490 MB, die Ausgabedatei hat ein grösse von ca. 800MB. Das komische an der ganzen Sache ist dass ich eine Spalte aus der Eingabedatei entferne und die Zeilenwerte einer anderen Spalte durch 10 teile. Eigentlich müsste das Ausgabefile kleiner werden. Hier der verwendete Code:
Code:
% Text is read in, the wind direction is skipped and the wind speed is
% divided by 10 to get the real values

clc
clear all
stationfile = 'Deutschland_all.txt';
[stnr year mnd day hour minute speed] = textread(stationfile,'%n %n %n %n %n %n %*n %n','headerlines',1,'delimiter',' ');

fid = fopen('D1.txt','wt');
speed2 = (speed/10);

for i = 1:length(stnr)
fprintf(fid,'%6.0f %4.0f %2.0f %2.0f %6.0f %6.0f %6.4f\n', stnr(i), year(i), mnd(i), day(i), hour(i), minute(i), speed2(i));
end

fclose(fid);
close;
 


Hat irgendjemand eine Idee woran es liegen könnte das sich die Text files derart vergrössern? Bzw ne Idee wie ich sie kleiner bekommme?

danke im Voraus
Private Nachricht senden Benutzer-Profile anzeigen


Titus
Forum-Meister

Forum-Meister


Beiträge: 871
Anmeldedatum: 19.07.07
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 14.01.2010, 16:41     Titel:
  Antworten mit Zitat      
Hallo,

hmm, Du gibst die Stunde und Minute mit 6 Stellen aus, obwohl beide eigentlich zweistellig sind:
Code:
length(sprintf('%6.0f', 15))
ans =
    6
 

Nebenbei: solange es sich um ganze Zahlen handelt, nimmt man normalerweise %d (ggf. mit einer Null, falls Du die Spalten "sauber" haben willst):
Code:
sprintf('%2d', 9)
ans =
    9
sprintf('%0.2d', 9)
ans =
   09
 


Ciao,
Titus
Private Nachricht senden Benutzer-Profile anzeigen
 
noppoel
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 52
Anmeldedatum: 27.10.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.01.2010, 11:08     Titel:
  Antworten mit Zitat      
Ok- danke. Werd ich mal probieren!
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.