2010-04-28 1678 views
0

任何簡單的方法來讀取MATLAB中的所有列?MATLAB時間戳讀取

我的格式是

date time y1 y2 y3 y4 .........................  
4/27/2010 00:3:09 34 45 45 56 ................  

等等......目前我的代碼閱讀這些:

[c,pathc]=uigetfile({'*.txt'},'Select the data','C:\Data');  
file=[pathc c];  
data= dlmread(file, ',', 1,3);  

所以不用說我跳過時間戳。

想知道是否有簡單的方法來讀取時間戳,並以小時爲單位繪製其他列。

我的文件是43200×30的,有些是86400×90

相關問題:是格式同樣爲.csv和.xls文件,我的意思當然除了xlsread

回答

1

我已經回答了你在這裏相同的數據的問題: skip reading headers in MATLAB

[c,pathc]=uigetfile({'*.txt'},'Select the data','C:\Data'); 
file=[pathc c]; 
A = importdata(file, ' ', 1); 
dt = datenum(A.textdata(2:end,1),'mm/dd/yyyy'); 
tm = datenum(A.textdata(2:end,2),'HH:MM:SS'); 
tm = dt+tm-datenum('0:0','HH:MM'); %# combine date and time and correct for zero time. 
data = A.data; 

您可以繪製您的數據對tm和使用DATETICK函數來顯示日期的任何格式。

plot(tm,data) 
datetick('x','HH') 
xlabel('Time, hours') 

編輯

您還可以使用Jonas's solution對於前一個問題來讀取數據。然後做與上面相同:

dt = datenum(dateAndTimeCell(:,1),'mm/dd/yyyy'); 
tm = datenum(dateAndTimeCell(:,2),'HH:MM:SS'); 
tm = dt+tm-datenum('0:0','HH:MM'); 

plot(tm,dataArray,'o-') 
datetick('x','HH') 
xlabel('Time, hours') 
+0

我得到了一大堆的錯誤,我不明白他們 ???錯誤使用==> dlmread at 145 文件和格式字符串不匹配。 麻煩從文件中讀取數(行1, 場5)==>:00:0 錯誤==> dlmread在90 結果= dlmread(文件名,分隔符,R,0); 錯誤==> testwith_timestamps at 45 data = dlmread(file,',',1); ???錯誤使用==> importdata at 199 無法加載文件。 – Paul 2010-04-28 15:37:04

+0

使用TEXTSCAN或FREAD更復雜的 格式。 錯誤==> testwith_timestamps at 49 A = importdata(file,'',1); 引起: 錯誤使用==> vertcat CAT參數尺寸不是 一致。 – Paul 2010-04-28 15:37:33

+0

我在使用uiget命令後使用了與您的代碼相同的代碼減去我用作ur代碼導入數據的dlmread – Paul 2010-04-28 15:38:11

0

我相信sscanf的就可以了你。