calculate a vector from consecutive vectors without a loop

2 Ansichten (letzte 30 Tage)
Guy Eyal
Guy Eyal am 12 Jun. 2013
Hi
I would like to receive the mean value of each 10 consecutive values of a vector. Is it possible to run it without a for loop?
Using a for it would have been:
for ix=1:length(X)-9 mean_X = mean(X(ix:ix+9)) end
Thanks Guy

Akzeptierte Antwort

Kye Taylor
Kye Taylor am 12 Jun. 2013
Bearbeitet: Kye Taylor am 12 Jun. 2013
Totally.. try something like
yourVector = 1:100;
avgWindow = 1/10*ones(1,10); % each value is 1/10
movingAverage = conv(yourVector,avgWindow,'valid')
Compare with
for i = 1:numel(yourVector)-9
movingAverageLoop(i) = mean(yourVector(i:i+9));
end

Weitere Antworten (0)

Kategorien

Mehr zu Resizing and Reshaping Matrices finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by