Eine Textdatei in MATLAB Zeile für Zeile lesen
Ich habe eine CSV-Datei, ich will diese Datei zu Lesen, und einige vorab-Berechnungen auf jede Zeile, um zu sehen, zum Beispiel, die Zeile ist für mich nützlich ist oder nicht und wenn ja, ich speichern Sie es in einer neuen CSV-Datei.
kann mir jemand ein Beispiel?
mehr details das ist, wie meine Daten Aussehen: (string,float,float) die zahlen sind die Koordinaten.
ABC,51.9358183333333,4.183255
ABC,51.9353866666667,4.1841
ABC,51.9351716666667,4.184565
ABC,51.9343083333333,4.186425
ABC,51.9343083333333,4.186425
ABC,51.9340916666667,4.18688333333333
grundsätzlich will ich speichern Sie die Zeilen, die für Entfernungen von mehr als 50 oder 50 in eine neue Datei.die string-Feld sollte auch kopiert werden.
Dank
InformationsquelleAutor der Frage Hossein | 2010-05-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnte man tatsächlich verwenden
xlsread
um dies zu erreichen. Nach der ersten Abgabe Ihrer Probe obigen Daten in einer Datei'input_file.csv'
hier ist ein Beispiel für, wie kann man numerische Werte, Textwerte, und die raw-Daten in der Datei aus, die drei Ausgänge ausxlsread
:Können Sie dann ausführen, was die Verarbeitung, die Sie brauchen, um auf die numerische Daten speichern, die eine Teilmenge der Zeilen der Daten in eine neue Datei mit
xlswrite
. Hier ist ein Beispiel:InformationsquelleAutor der Antwort gnovice
Wenn Sie wirklich wollen, um Ihre Datei Zeile für Zeile, eine Lösung sein könnte, zu verwenden
fgetl
:fopen
fgetl
sscanf
auf das Zeichen-array, die Sie gerade gelesenIm Gegensatz zu der vorherigen Antwort, das ist nicht sehr viel im Stil von Matlab, aber es könnte effizienter sein, sich auf sehr große Dateien.
Hoffe, das wird helfen.
InformationsquelleAutor der Antwort Adrien
Sie nicht Lesen können, text-strings mit csvread.
Hier ist eine andere Lösung:
InformationsquelleAutor der Antwort yuk
Nur Lesen Sie in MATLAB in einem block
Können Sie dann über die logische Adressierung
ind50 ist dann ein index der Zeilen, in denen Spalte 2 größer ist als 50. So
wird die Liste der Zeichenfolgen für die Zeilen von Interesse.
Dann verwenden Sie einfach
fprintf
zu schreiben, die Ihre Daten in die neue DateiInformationsquelleAutor der Antwort Adrian
hier ist der doc zum Lesen einer csv -: http://www.mathworks.com/access/helpdesk/help/techdoc/ref/csvread.html
und zu schreiben : http://www.mathworks.com/access/helpdesk/help/techdoc/ref/csvwrite.html
BEARBEITEN
Ein Beispiel, das funktioniert :
Datei.csv :
code :
und die Ausgabe-Datei Ergebnis :
Dies ist wahrscheinlich nicht die beste Lösung, aber es funktioniert! Wir können Lesen Sie die CSV-Datei, die Kontrolle der Abstand der einzelnen Zeilen und speichern Sie es in eine neue Datei.
Hoffe, es wird helfen!
InformationsquelleAutor der Antwort Michaël