全部 我不知道是否有一種方法可以在Matlab中生成時間戳記序列?在Matlab中生成時間戳記系列?
我假設會有開始時間,結束時間和頻率。
它是簡單的使用產生1,普通系列:1:100(1至100 1)
我如何可以用類似的方式來產生一個時間戳列?例如,我將開始時間指定爲早上9點,直至上午10點,我想要生成類似9:00:00:000,9:00:00:500,9:00:01:000的東西。 ..
由500毫秒
甚至更好目瞪口呆,包括日期,以及。
全部 我不知道是否有一種方法可以在Matlab中生成時間戳記序列?在Matlab中生成時間戳記系列?
我假設會有開始時間,結束時間和頻率。
它是簡單的使用產生1,普通系列:1:100(1至100 1)
我如何可以用類似的方式來產生一個時間戳列?例如,我將開始時間指定爲早上9點,直至上午10點,我想要生成類似9:00:00:000,9:00:00:500,9:00:01:000的東西。 ..
由500毫秒
甚至更好目瞪口呆,包括日期,以及。
使用datenum,你可能有唯一的問題是,你有一個缺口秒/天或夏季節省如果你跨越時間長一段時間的碰撞(但我不認爲這在datestr
as you can read here實現)。
starttime = datenum(2000, 1, 1, 9, 0, 0);
dt = 0.500/86400; % datenum is a serial time format with 1 = 1 day = 86400 sec
N = 5;
timevec = starttime + dt*(0:(N-1));
>> datestr(timevec, 'HH:MM:SS.FFF')
ans =
09:00:00.000
09:00:00.500
09:00:01.000
09:00:01.500
09:00:02.000
玩這取決於你的需求,但你可以考慮使用的datetime()和一個組合或許多days(),hours(),minutes(),seconds()等功能。
讓我們寫一些代碼:用於顯示滿足您的需求數據
start=datetime(1985,07,13,9,0,0); % your start date
steps=seconds(0:0.5:100); % your vector with steps
timeseries=start+steps; % your time series
您還可以設置的格式,這樣做檢查datetime properties手冊。
從2015A開始,您可以使用milliseconds
功能之間建立時間步長的矢量時間點:
start = datetime('2017/1/3 9:00:00:000','InputFormat','yyyy/MM/dd H:mm:ss:SSS');
step = milliseconds(500);
fin = datetime('2017/1/3 10:00:00:000','InputFormat','yyyy/MM/dd H:mm:ss:SSS');
time_vec = start:step:fin;
如果不定義日期明確,將選擇當前日期。
你也可以有一個結構的時間和數據,你可以使用timeseries
類(使用start
從上面):
data = rand(7201,1);
ts = timeseries(data,'Name','MyTs');
ts.TimeInfo.StartDate = start;
ts.TimeInfo.Units = 'milliseconds';
ts = setuniformtime(ts,'Interval',500);
這將創建一個時間序列對象:
>> ts
timeseries
Common Properties:
Name: 'MyTs'
Time: [7201x1 double]
TimeInfo: [1x1 tsdata.timemetadata]
Data: [7201x1 double]
DataInfo: [1x1 tsdata.datametadata]
以下時間信息:
>> ts.TimeInfo
tsdata.timemetadata
Package: tsdata
Uniform Time:
Length 7201
Increment 500 milliseconds
Time Range:
Start 03-Jan-2017 09:00:00
End 03-Jan-2017 10:00:00
Common Properties:
Units: 'milliseconds'
Format: ''
StartDate: '03-Jan-2017 09:00:00'