Conversion of time series- hour resolution to minute resolution!

I have a time series of '1' and '0' representing accessibility of the system. Each index of the time series represents an hour (resolution).
Now, instead of having accessibility each hour, I want it for each 6 minutes. To explain the thing I want to achieve, I shall give an example:
  • E.g. at 00.00 hrs, the value of accessibility is '1' and at 01.00 hrs, the accessibility goes to '0'. The new vector should consider the following- from 00.06 - 00.30 hrs(5 indices), the value will be '1' and from 00.36 - 1.00 hrs (5 indices) the value is '0'.
How should I formulate a new vector, which could do such an operation?

 採用された回答

Patrik Ek
Patrik Ek 2014 年 8 月 26 日
編集済み: Patrik Ek 2014 年 8 月 26 日

0 投票

You can use repmat
t0 = [1,0,0,1]; % [00.00, 01.00, 02.00, 03.00]
t1tmp = repmat(t0,10,1); % repeat rows 10 times
t1tmp = t1tmp(:).'; % Make t1tmp a row vector
t1 = t1(6:end.6); % remove times 23.30-00.00 and 03.00-03.30

1 件のコメント

Ashish
Ashish 2014 年 8 月 26 日
Thanks Patrik.
The last line shows error. Also, I didn't understand as to what is to be achieved with that line?

サインインしてコメントする。

その他の回答 (1 件)

dpb
dpb 2014 年 8 月 26 日
編集済み: dpb 2014 年 8 月 26 日

0 投票

>> round(interp1([0 1],[0 1],0:.1:1))
ans =
0 0 0 0 0 1 1 1 1 1 1
>>
Generalize to
x=0:length(series)-1;
y=series;
interpolatedseries=round(interp1(x,y,[0:0.1:x(end)]));
This is in units of hours, of course. If want minutes multiply x by 6 or in actual time, convert to Matlab datenums.

1 件のコメント

Ashish
Ashish 2014 年 8 月 26 日
This is better for me to understand. Thanks!

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeDates and Time についてさらに検索

質問済み:

2014 年 8 月 26 日

コメント済み:

2014 年 8 月 26 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by