2013-02-20 13 views
5

Mam zatem plik przeznaczony do analizowania dość dużego pliku CSV w celu usunięcia kilku punktów danych. Trzy z tych wartości (spośród ponad 400.000) w pliku znajduje się na liście poniżej:Csvwrite z liczbami większymi niż 7 cyfr

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 

Co usiłuję zrobić tutaj jest podjęcie uprzednio filtrowane punkty danych, jak to i podłączyć go do innego pliku csv przy użyciu csvwrite . Jednak csvread przyjmie tylko Epoch_ms w podwójnej precyzji, przechowując wartość jako 1.1630e + 09, która jest wystarczająca do odczytu, ponieważ zachowuje oryginalną wartość liczby do użycia w operacjach MATLAB.

Jednak podczas csvwrite precyzja ta jest tracona, a każdy punkt danych jest zapisany jako 1.1630e9.

Jak uzyskać csvwrite, aby obsłużyć numer z większą precyzją?

Odpowiedz

9

Użyj dlmwrite z dokładnym argumentem, takim jak %i. Domyślnym ogranicznikiem jest przecinek, podobnie jak plik CSV.

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

Dzięki, udało się! – panoptical

Powiązane problemy