2013-02-20 12 views
5

Also habe ich eine Datei, die entworfen wurde, um durch eine ziemlich große CSV-Datei zu analysieren, um eine Handvoll Datenpunkte auszusortieren. Drei der Werte (aus 400,000+) innerhalb der Datei unten aufgeführt ist:Csvwrite mit Zahlen größer als 7 Ziffern

Vehicle_ID Frame_ID Tot_Frames Epoch_ms Local_X 
2   29   1707  1163033200 8.695 
2   30   1707  1163033300 7.957 
2   31   1707  1163033400 7.335 

Was ich versuche, hier zu tun ist, vorher gefilterten Datenpunkte so zu nehmen und stecken Sie sie in einer anderen CSV-Datei mit csvwrite . Csvread nimmt die Epoch_ms jedoch nur in doppelter Genauigkeit auf und speichert den Wert als 1.1630e + 09, was zum Lesen ausreicht, da der ursprüngliche Wert der Zahl für die Verwendung in MATLAB-Operationen beibehalten wird.

Während csvwrite ist diese Genauigkeit jedoch verloren und jeder Datenpunkt wird als 1.1630e9 geschrieben.

Wie bekomme ich csvwrite, um die Nummer mit größerer Präzision zu behandeln?

Antwort

9

Verwenden Sie dlmwrite mit einem Präzisionsargument, z. B. %i. Das Standardtrennzeichen ist ein Komma, genau wie eine CSV-Datei.

dlmwrite(filename, data, 'precision', '%i') 
+0

Danke, das hat funktioniert! – panoptical

Verwandte Themen