Lesen von großen csv Dateien mit strings mit Kommata als ein Feld
Ich habe eine großen .csv-Datei (~26000 Zeilen). Ich möchte in der Lage sein, es zu Lesen in matlab. Ein weiteres problem ist, dass es enthält eine Sammlung von strings werden durch Kommata getrennt in eine der Felder.
Ich habe Mühe, es zu Lesen. Ich habe versucht, Sachen wie tdfread, die funktioniert hier nicht. Alle tricks mit textscan ich beachten sollte?
Gibt es eine andere Möglichkeit?
könnte Sie buchen mindestens eine Zeile der Daten..
Ich dachte, matlab Lesen konnte, cvs nativ. der load-Befehl funktioniert nicht standardmäßig? Ich hätte schwören können, sah ich jemanden, der laden cvs vor.
Wenn Sie Zugang zu der Anwendung exportiert die Daten, die Sie möglicherweise in der Lage, exportieren Sie es als tab-getrennte (oder etwas anderes als durch Kommata getrennt).
Ja, einige Daten wären hilfreich. Speziell in diesem Bereich mit Kommas. Ist es in Anführungszeichen zu setzen? @Chris: Matlab hat die Funktion CSVREAD, aber Lesen kann es nur numerische Werte. Es wird aufhören, wenn es feststellt, text-Daten. Sie können angeben, welche Spalten mit zahlen, in diesem Fall strings werden ignoriert.
1 563355 62701 0 1235000081 php,Fehler,gd,image-Verarbeitung 220 2 563372 67183 2 1235000501, Dass eine Reihe von Daten. Wie Sie sehen können, gibt es eine Sammlung von strings. Danke.
Ich dachte, matlab Lesen konnte, cvs nativ. der load-Befehl funktioniert nicht standardmäßig? Ich hätte schwören können, sah ich jemanden, der laden cvs vor.
Wenn Sie Zugang zu der Anwendung exportiert die Daten, die Sie möglicherweise in der Lage, exportieren Sie es als tab-getrennte (oder etwas anderes als durch Kommata getrennt).
Ja, einige Daten wären hilfreich. Speziell in diesem Bereich mit Kommas. Ist es in Anführungszeichen zu setzen? @Chris: Matlab hat die Funktion CSVREAD, aber Lesen kann es nur numerische Werte. Es wird aufhören, wenn es feststellt, text-Daten. Sie können angeben, welche Spalten mit zahlen, in diesem Fall strings werden ignoriert.
1 563355 62701 0 1235000081 php,Fehler,gd,image-Verarbeitung 220 2 563372 67183 2 1235000501, Dass eine Reihe von Daten. Wie Sie sehen können, gibt es eine Sammlung von strings. Danke.
InformationsquelleAutor K_U | 2010-01-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin mir nicht sicher, was ist das erzeugen der CSV-Datei, aber das ist Ihr problem.
Dem Punkt, der Sie eine CSV-Datei, ist, dass die Datei selbst bezeichnet die Trennung der Felder. Wenn der text die CSV enthält Kommas, dann nichts, was Sie tun können, wird Ihnen helfen. Wie würde ein Programm wissen, Wann der text in einem einzigen Feld enthält Kommas, oder wenn das Komma ist ein Feld-Trennzeichen?
Richtige CSV wäre eine text-Kennzeichner. Einige Generatoren/Leser gibt Ihnen die Möglichkeit, zu verwenden. Die standard-text-Kennzeichner ist " (Zitat). Sein wechselhaftes, aber da Ihr text enthalten kann auch.
Wieder, es ist alles über die richtige CSV-Daten.
Sie können nicht unterscheiden Feld-Trennzeichen von Komma in den text, wenn es Kommata in den Feldern und kein text Qualifier. Sind Sie in der Lage zu sprechen, um diejenigen, die generieren diese CSV und lassen Sie Sie mit einem text-qualifier?
InformationsquelleAutor Gabriel McAdams
Gibt es eine chance, dass xlsread nicht geben Ihnen die Antwort, die Sie erwarten-zu tun, die Saiten immer in den gleichen Spalten, zum Beispiel? Ich denke (wie alle anderen scheinen : -), es wäre robuster, benutzen Sie einfach
und dann entweder textscan
oder nur
fgetl
(das Beispiel in der Hilfe ist perfekt).Danach können Sie einige der line-by-line-Verarbeitung-Verwendung von textscan wieder auf den text-Inhalt der Zeile, zum Beispiel, ist eine schöne, schnelle Weg, um ein cell-array, ermöglichen eine schnelle Analyse der einzelnen Zeile.
InformationsquelleAutor Nivag
Haben Sie ein problem, weil Sie das Lesen Sie in als .csv, und Sie Kommas innerhalb Ihrer Daten. Sie können es in Excel, und Bearbeiten Sie das Datum, möglicherweise extrahieren der unerwünschten Kommas mit Excel-Formeln. Ich arbeite mit .csv-Dateien für die DB importiert ziemlich viel. Ich kann mir vorstellen matLab hat ähnliche Regeln, die keine Kommas in Ihren Daten.
Können Sie uns mehr über Ihre Daten? Da sind Kommas im ganzen, unsere nur eine Spalte? Vielleicht Lesen Sie es als tab-getrennte?
Eigentlich, wenn Sie es in einem .xls können Sie Kommas innerhalb Ihrer Zellen. An dieser Stelle können Sie Ihre Funktionen zum extrahieren des Kommas, und speichern Sie dann als .csv
Ich habe versucht, die Konvertierung in xls, aber die Anzahl der Zeilen, die weit über der max-Grenze. Es ist eigentlich ~263000. Ich denke, xls hat ein max limit von 65535 von ~277 oder so etwas. Ich es geschafft, es zu Lesen mit xlsread auf die csv-Datei selbst. Danke
Excel kann nur Kommas in das Feld, weil Sie einen text-Kennzeichner ( " ), die für das Feld. Ohne eine, auch Excel nicht herausfinden können, es sollte ein single-Feld mit Kommas (Randbemerkung: Excel 2007 erlaubt mehr als eine million Zeilen)
InformationsquelleAutor tpow
Sind Sie mit einem Unix-system? Der Grund warum ich Frage ist, dass man mit einem command-line-Funktion wie
sed
und reguläre Ausdrücke, um zu reinigen Sie diese Dateien, bevor Sie übergeben Sie in Matlab. Hier ist ein link, die erklärt, wie genau das zu tun, was Sie suchen.InformationsquelleAutor John Bellone
Da, wie Sie es von anderen beobachtet, wird Ihre Datei ist CSV mit Kommas inneren, was Sie denken, als ein einzelnes Feld, es wird schwer werden Sie zu überreden, Matlab, das ist wirklich nur ein Feld. Ich denke, die beste Strategie wird sein, zu Lesen eine Zeile zu einem Zeitpunkt, in einen string als Puffer, und um es zu übersetzen, Feld für Feld, in das Variablen-oder anderen Datenstrukturen, die Sie möchten. Da Matlab hat einen eingebauten regulären Ausdruck Fähigkeiten dieses sollte nicht zu hart sein.
Und, wie andere bereits vorgeschlagen, die Entsendung einer Stichprobe von Ihre Daten helfen uns, Ihnen zu helfen.
InformationsquelleAutor High Performance Mark
Eine einfache Lösung ist:
Natürlich könnten Sie auch Folgendes tun:
nun werden Sie geladen haben, werden die Daten als dataset. Eine einfache Möglichkeit, um eine Spalte 1 zum Beispiel ist
Doppel(data(1))
InformationsquelleAutor Stanislav