2016-07-27 6 views
2

すべて Matlabでタイムスタンプシリーズを生成する方法があるのだろうか?Matlabでタイムスタンプシリーズを生成しますか?

開始時間、終了時間、および頻度があると仮定します。私はタイムスタンプシリーズを生成するための同様の方法を使用するにはどうすればよい(1 100に1)100

:1:

1を使用して、通常のシリーズを生成することは簡単ですか?

たとえば、開始時刻を午前9時から午前10時の間に指定すると、9:00:00:000,9:00:00:500,9:00:01:000のように生成します。 500ミリ秒

あるいはさらに良いことでgaped ..

、同様に日付が含まれます。

答えて

1

使用datenum、あなたが持つかもしれない唯一の問題は、あなたが長い期間にまたがるしている(しかし、私はそれがdatestras you can read hereに実装されないと思う)場合は、あなたがギャップ秒/日や夏の節約時間と衝突するということです。 datenumnowdatestr

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 
0

と周り

プレイは、それはあなたのニーズによって異なりますが、あなたはdatetime()と1の組み合わせまたは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マニュアルをチェックし、そうするために、あなたのニーズを満たしているデータを表示するための書式を設定することができます。

1

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; 

日付を定義しない場合、明示的に、それは現在の日付を選択します。あなたはまた、時間とデータの両方のための一つの構造を持つことができます

、あなたは(上からstartを使用して)timeseriesクラスを使用することができます。

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' 
関連する問題