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

Zeilen einzelnd importieren und bearbeiten

 

WANNABEDIPL

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.07.2009, 10:50     Titel: Zeilen einzelnd importieren und bearbeiten
  Antworten mit Zitat      
Hallo,

ich muss wärend meiner Diplomarbeit ein File mit vielen Datenpunkten auswerten. Die Datei ist eine Textdatei, 1,2 GB groß und enthält bis zu 10 Millionen Punkte a 6 Daten.

Ich habe Matlab nie zu ende rechnen lassen um dieses File zu öffnen, da ich mal denke, dass es das nicht schafft.
Meine Idee ist es jede Zeile einzelnd einzulesen, zu bearbeiten und wieder zu speichern in einer anderen Datei.

Ich habe jetzt schon herrausgefunden, dass ich mit:

Code:
fid = fopen('Scanpunkte_GAF.txt');
 
 tline = fgetl(fid);
 while ischar(tline)
     disp(tline);
     tline = fgetl(fid);
 end
 
 fclose(fid);


die Zeilen einzelnd auf dem Commandwindow darstellen kann, aber dies geschieht ja nur als String und ich möchte gerne die einzelnen Einträge nach Spalten ansprechen können.

Kann mir jemand helfen?
Vielen Dank schon einmal!

Edit by Martin: Bitte in Zukunft die Code-Formatierung verwenden. Danke Smile


steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 17.07.2009, 11:03     Titel:
  Antworten mit Zitat      
Moin,

auch wenn es etwas dauert, aber ich denke Matlab schafft es die Daten einzulesen. Einfach mal rechte Maustaste "import Data" auswählen (am besten vor der Mittagspause) und dann nach dem Mittag mal schauen, ob es geklappt hat.

Ansonsten such mal im Forum nach "textscan", damit kannst du angeben als was du die einzelnen Elemente der Zeile einlesen willst und du kannst glaube ich auch damit direkt die Zeilen einzeln einlesen, bin mir aber grad nicht sicher...

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
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.07.2009, 13:34     Titel:
  Antworten mit Zitat      
Danke schon mal, das werde ich morgen mal ausprobieren.
Einlesen kann er das nicht, ich bekomme eine Meldung dass der Speicher nicht ausreicht. Da könnte man aber sicher mehr zuweisen, allerdings weiß ich auch nicht, wie das geht.
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 17.07.2009, 13:59     Titel:
  Antworten mit Zitat      
Aso ok, wenn der Speicher nicht ausreicht, dann ist es was anderes. Ich hab gedacht es kommt keine Speichermeldung...
_________________

>> 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
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.07.2009, 09:18     Titel:
  Antworten mit Zitat      
Moin,

nur für die, die es interessiert, ich habe es jetzt folgender massen gelöst:

Code:

fid = fopen('daten.txt');

tline = ('beginn');
n=1;
while ischar(tline)
    tline = fgetl(fid);
    b=textscan(tline,'%s');
    c(n,1) = str2num(b{1}{2});
    n=n+1;
end

fclose(fid);
 


Vielen Dank für den Tipp mit textscan, der hinweis hat mich mit Hilfe der Suche auf den richtigen Weg gebracht Smile
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.07.2009, 14:11     Titel:
  Antworten mit Zitat      
Moin,
noch mal eine Frage, wenn ich das Programm so laufen lasse, erhalte ich einen Fehler, wenn textscan die letzte Zeile bearbeitete hat. Wie schalte ich den aus?


??? Error using ==> textscan
Invalid file identifier. Use fopen to generate a valid file identifier.

Error in ==> Kompensation_Verformung at 62
b=textscan(tline,'%s');
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.07.2009, 14:53     Titel:
  Antworten mit Zitat      
schon selbst gefunden Wink

Code:

while ischar(tline)
    tline = fgetl(fid);
    if tline == -1
        fclose(fid);
        fclose(fid2);
        break
    else
 


einfach einfügen
 
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.