MATLAB时间戳读数

时间:2010-04-28 15:10:20

标签: matlab datetime file-io timestamp

任何简单的方法来读取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 X 30,有些是86400 X 90

相关问题:.csv和.xls文件的格式相同,我的意思是xlsread除外

2 个答案:

答案 0 :(得分: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')

答案 1 :(得分:0)

我相信sscanf会为你做到这一点。