Rolling max/min maximum and minimum
Afficher commentaires plus anciens
This may have already been asked and aswered, but I couldn't find anything on Matlab Answers or Google. Is there a slick vectorized way to calculate a rolling maximum/minimum for a vector. So the maximum over the previous n values (inclusive of the current value). For indices i < n the value should either be the max of the values with indices 1:i or NaN, I can live with either. So for example:
x = [1, 3, 2, 7, 4, 3]; n = 2;
should give
rollingMax = [NaN, 3, 3, 7, 7, 4] or [1, 3, 3, 7, 7, 4]
Réponses (3)
If you have the Image Processing Toolbox, you can use IMDILATE
>> imdilate( [1, 3, 2, 7, 4, 3] ,[1,1])
ans =
1 3 3 7 7 4
1 commentaire
Chris
le 27 Nov 2012
Without a toolbox:
x = randi(10,1,100);
n = 2;
maxVec = arrayfun(@(a,b) max(x(a:b)),1:numel(x)-n+1,n:numel(x));
1 commentaire
Catégories
En savoir plus sur MATLAB Mobile Fundamentals dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!