任何简单的方法来读取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除外
答案 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会为你做到这一点。