Help with for cycle in a vector
Afficher commentaires plus anciens
I have a vector , and I want to obtain another vector whose elements are obtained by averaging over the elements of the first one. For example I have
x = [3,6,4,5,1,7,9,8,5]
and I want to obtain a vector by averaging every 3 elements of x, like this
y = [(3+6+4)/3,(5+1+7)/3,(9+8+5)/3].
Also I want to take into account the modulus of division, so if I have
x=[3,6,4,5,1,7,9,8]
then y should be
y = [(3+6+4)/3,(5+1+7)/3,(9+8)/2],
and if
x=[3,6,4,5,1,7,9]
then y should be
y = [(3+6+4)/3,(5+1+7)/3,9]
I know I have to use more than a 'for' cycle but don't know how, could you help me? thanks
Réponse acceptée
Plus de réponses (1)
Andrei Bobrov
le 29 Avr 2014
Modifié(e) : Andrei Bobrov
le 29 Avr 2014
out = blockproc(x,[1,3],@(x)mean(x.data));
or
out = nanmean(reshape([x,nan(1,mod(-numel(x),3))],[],3));
Catégories
En savoir plus sur 2-D and 3-D Plots 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!