2015-11-05 260 views
-1

我的CSV文件中的數據是這樣的:導入CSV數據到MATLAB

2015/01/01;00:15;62;646;96;321;42;74;529;0;0 
2015/01/01;00:30;245;74;854;62;154;93;354;0;0 
...... 

的數據由分號與前兩列分開的時間,其餘的數字數據採樣。

我只想數值數據導入到MATLAB中,我試圖用csvread

M = csvread('data.csv',0,2,[0 2 500 10]); 

,但得到的錯誤是這樣的:文件之間

使用錯誤dlmread(線138)不匹配和格式字符串。

我該如何解決這個問題?

還試圖textscan但失敗了..

+0

認真嗎?這是今天的第三個問題,有人問到這個話題! – IKavanagh

+0

現在大家都知道。整個班級都會得到一份任務,整個班級都會把它放在SO上。此外,數據不是OP所要求的... –

+0

檢查是否是分隔符或小數分隔符(而不是我期望Matlab假設的'.')。 – Schorsch

回答

0

使用dlmread來代替。它允許你指定一個自定義分隔符,這csvread並不:

M = dlmread('data.csv', ';', 0, 2) 

前兩個元素不應該被解析,所以他們非數值性質應正確忽略。

+0

仍然有這樣的錯誤:使用dlmread時出錯(第138行) 文件和格式字符串不匹配。 從文件(行號1,字段編號4)讀取'Numeric'字段時出錯==> ,51; 622,8; 1,5; 208,8; 246,83; 179,54; 268,04; 0 ; 0;; \ n 數據錯誤(第1行) M = dlmread('data.csv',';',0,2);這個問題與數據的格式有關嗎? –

+0

是的。從錯誤輸出中,顯然分隔符都是';'和','在你的實際數據中,而不僅僅是';'如你所說。在這種情況下,使用['textscan()'](http://www.mathworks.com/help/matlab/ref/textscan.html),這非常可笑。 –