2013-02-20 38 views
5

Vì vậy, tôi có tệp được thiết kế để phân tích cú pháp thông qua tệp csv khá lớn để loại bỏ một số điểm dữ liệu. Ba trong số các giá trị (trong số 400,000+) trong tập tin được liệt kê dưới đây:Csvwrite với số lớn hơn 7 chữ số

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 

Những gì tôi đang cố gắng để làm ở đây là để có điểm dữ liệu được lọc trước đây như thế này và cắm nó vào một tập tin csv sử dụng csvwrite . Tuy nhiên, csvread sẽ chỉ mất trong Epoch_ms với độ chính xác gấp đôi, lưu trữ giá trị là 1.1630e + 09, đủ để đọc, vì nó duy trì giá trị ban đầu của số để sử dụng trong các hoạt động MATLAB.

Tuy nhiên, trong khi csvwrite, độ chính xác đó bị mất và mỗi điểm dữ liệu được viết là 1.1630e9.

Làm cách nào để nhận csvwrite xử lý số có độ chính xác cao hơn?

Trả lời

9

Sử dụng dlmwrite với đối số chính xác, chẳng hạn như %i. Dấu phân cách mặc định là dấu phẩy, giống như tệp CSV.

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

Cảm ơn, điều đó đã hiệu quả! – panoptical

Các vấn đề liên quan