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

Mehrere Header in einlese Datei fopen

 

Flo22

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.07.2009, 16:15     Titel: Mehrere Header in einlese Datei fopen
  Antworten mit Zitat      
Hi

Ich möchte eine datei einlessen mit 1000000 zeilen mit folgendem Program code

clear all;
close all;
clc;


infile = 'NN_5A_1982_2002.zrx';

fid = fopen(infile,'r')
[Datum,Niederschlag,xxxxx,] = ...
textread(infile,'%f %f %f ','headerlines',15)



Das Funktioniert auch gut bis zur Zeile 65000 hier beginnt ein weiterer Header ich glaube das Problem liegt daran

Es folgen noch weitere Header immer nach mehrerern Tausend Daten

Wie kann ich die Dateien Einlesen obwohl die Header im weg sind ?


Gruß

Flo


steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 07.07.2009, 16:27     Titel:
  Antworten mit Zitat      
Moin,

du müsstest mehrere Aufrufe machen und die Headerlines-Anzahl entsprechend anpassen... Anders geht es glaub ich nicht ohne weiteres - außer evtl. über eine Verwendung von FGETL wo du jede Zeile einzeln einliest und überprüfen musst ob sie Headerzeile ist oder nicht.

Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
Flo22

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.07.2009, 16:43     Titel:
  Antworten mit Zitat      
Und wie lese ich denn nur bis zur zeile 60000 tausend aus und starte das progemm wieder mit der Zeile 60001?
 
LittleX
Forum-Guru

Forum-Guru


Beiträge: 494
Anmeldedatum: 14.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.07.2009, 17:05     Titel:
  Antworten mit Zitat      
Hallo,

ich würde Dir den Befehl textscan anstelle von textread empfehlen.
Textscan liest solang das Format stimmt. Das Ergebnis wird im Gegensatz zu textread in dem Datentyp cell zurückgegeben. Ein erneuter Aufruf von textscan führt dazu, dass an der Stelle weitergemacht wird, an der der vorherige Aufruf aufgehört hat.
Allgemein kann man bei textscan noch mehr Optionen einstellen als bei textread.

Code:

fid = fopen(infile,'r')
[Datum,Niederschlag,xxxxx,] = ...
r1 = textscan(fid,'%f %f %f ','headerlines',15)
r2 = textscan(fid,'%f %f %f ','headerlines',3) % angenommen, der nächste header ist nur 3 Zeilen...
...
fclose(fid)
 



Zudem ist es bei textscan möglich, ein Kommentarzeichen anzugeben.
Jede Zeile die mit diesem Zeichen beginnt wird ignoriert. Evtl. beginnen die Header ja mit einem bestimmten Zeichen wie z.B. #,% ...
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 - 2024 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.