MATLAB: rechnen Mittelwerten der einzelnen 1-Minuten-Intervall von einer Zeit-Serie

Habe ich ein paar mal-Serie jeweils durch zwei Komponenten beschrieben, ein timestamp-Vektor (in Sekunden), und ein Vektor, der die Werte gemessen. Die Zeit, die Vektor ist nicht einheitlich (D. H. Stichprobe in unregelmäßigen Abständen)

Ich versuche, berechnen Sie den Mittelwert/SD jedes 1-Minuten-Intervall der Werte (X-Minuten-Intervall berechnen Sie den Mittelwert, den nächsten Intervall, ...).

Meine aktuelle Implementierung verwendet Schleifen. Dies ist ein Beispiel von, was ich habe, so weit:

t = (100:999)' + rand(900,1);       %' non-uniform time
x = 5*rand(900,1) + 10;             % x(i) is the value at time t(i)

interval = 1;         % 1-min interval
tt = ( floor(t(1)):interval*60:ceil(t(end)) )';  %' stopping points of each interval
N = length(tt)-1;

mu = zeros(N,1);
sd = zeros(N,1);

for i=1:N
    indices = ( tt(i) <= t & t < tt(i+1) ); % find t between tt(i) and tt(i+1)
    mu(i) = mean( x(indices) );
    sd(i) = std( x(indices) );
end

Frage ich mich, ob es ein schneller Vektorgrafik-Lösung. Dies ist wichtig, da ich eine große Anzahl von Zeit-Serie zu jedem Prozess sehr viel länger als die oben angezeigte Beispiel..

Jede Hilfe ist willkommen.


Danke an Euch alle für das feedback.

Korrigierte ich den Weg t generiert werden stets streng monoton Steigend (sortiert), war dies nicht wirklich ein Problem..

Auch, ich habe nicht angegeben das klar, aber meine Absicht war es, eine Lösung für ein Intervall der Länge in Minuten (1-min war nur ein Beispiel)

InformationsquelleAutor merv | 2010-02-24

Schreibe einen Kommentar