Verfasst am: 24.04.2015, 11:50
Titel: Ich will nur die Nummer der letzten Zeile des txt-files
Jan S hat Folgendes geschrieben:
Hallo Heisenberg,
Du musst sowieso alles einlesen, um die letzte Zeile zu finden. Ich würde das File mit FOPEN öffnen und mit FSCANF die Werte einlesen. Zum Schluß kann man denn die letzte Zeile der Werte herauskopieren.
Gruß, Jan
Hallo,
ich habe ein ähnliches Problem. Ich lese ein txt-file ein mit textscan. Um die Daten später zu verarbeiten, brauche ich die Anzahl der Zeilen, um eine for-Schleife zu dimensionieren. Ich brauche also nicht die Werte die in der letzten Zeile drinstehen, sondern die Zeilennummer, welche genau der Zeilenanzahl entspricht, da das txt-file keinen header hat. Gibt es dafür einen Befehl z.B. irgendeinen Get-Befehl ? Ich weis nicht, wie ich danach in der Hilfe suchen soll, hab schon alles mögliche probiert.
EDIT: Hab die Lösung dafür selbst gefunden!
Mit size oder length kann man sich die Dimensionen ausgeben lassen bzw. in eine Variable schreiben. Hat bei mir nicht geklappt, da ich ein Cell Array habe, dort funktioniert es aber mit ndims.
Vielleicht hilft das auch jemandem, der ein ähnliches Problem hat.
Gesplittet: 24.04.2015, 19:01 Uhr von Jan S Von Beitrag Werte aus *.txt auslesen aus dem Forum Programmierung
Verfasst am: 27.04.2015, 09:56
Titel: Re: Ich will nur die Nummer der letzten Zeile des txt-files
Jan S hat Folgendes geschrieben:
Hallo MaraBelle,
Bitte hänge eine neue Fragen nicht an einen bestehenden Thread an. Danke!
Gruß, Jan
Okay, ich dachte, dass es sich dafür nicht lohnt, einen neuen Thread aufzumachen. Aber dann weiß ich Bescheid fürs nächste Mal, die Frage hat sich nun ja schon erledigt...
Edit: Mir war nicht bewusst, dass ich ein neues Thema starte, wenn ich etwas in die Überschriftenzeile einetrage. Hast du jetzt einen eigenen Thread daraus gemacht, oder wo ist der Rest von dem anderen Thread hin verschwunden??
EDIT: Hab die Lösung dafür selbst gefunden!
Mit size oder length kann man sich die Dimensionen ausgeben lassen bzw. in eine Variable schreiben. Hat bei mir nicht geklappt, da ich ein Cell Array habe, dort funktioniert es aber mit ndims.
Vielleicht hilft das auch jemandem, der ein ähnliches Problem hat.
Muss mich korrigieren: Das stimmt so nicht. Es hat bei meinem Beispiel nur zufällig funktioniert (3x1 cell Array, in dem jeweils ein 2x1 cell enthalten ist). Bei Erweiterung der cell Arrays um jeweils eine Zeile hat der Befehl ndim immer noch als Ergebnis 2 ausgespuckt.
Ich habe das Problem umgangen, indem ich die cells in drei einzelne Matrixen schreibe (x, y und z) bei denen ich dann über length die Zeilenanzahl abfragen kann. Diese brauchte ich sowieso für später. Hier noch den Code, falls jemand was ähnliches machen möchte/ braucht:
Code:
Pfade='C:\...\Input.txt'; % Inputdatei mit den Strings
fid=fopen(Pfade);
daten=textscan(fid,'%s %s %s','HeaderLines',0,'Delimiter','\t','MultipleDelimsAsOne',1);
fclose(fid);
x=daten{1,1}; % 1. Spalte (1. cell) in Matrix schreiben
y=daten{1,2}; % 2. Spalte (2. cell) in Matrix schreiben
z=daten{1,3}; % 3. Spalte (3. cell) in Matrix schreiben
N = length(x)% Anzahl der Zeilen bestimmen
Ok, vielen Dank! Ich hoffe, es kommt nicht wieder vor!
Einstellungen und Berechtigungen
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
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.