Conversion of time series- hour resolution to minute resolution!

1 visualizzazione (ultimi 30 giorni)
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?

Risposta accettata

Patrik Ek
Patrik Ek il 26 Ago 2014
Modificato: Patrik Ek il 26 Ago 2014
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 Commento
Ashish
Ashish il 26 Ago 2014
Thanks Patrik.
The last line shows error. Also, I didn't understand as to what is to be achieved with that line?

Accedi per commentare.

Più risposte (1)

dpb
dpb il 26 Ago 2014
Modificato: dpb il 26 Ago 2014
>> 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.

Categorie

Scopri di più su Data Type Conversion in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by