Help with for cycle in a vector
이전 댓글 표시
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
채택된 답변
추가 답변 (1개)
Andrei Bobrov
2014년 4월 29일
편집: Andrei Bobrov
2014년 4월 29일
out = blockproc(x,[1,3],@(x)mean(x.data));
or
out = nanmean(reshape([x,nan(1,mod(-numel(x),3))],[],3));
카테고리
도움말 센터 및 File Exchange에서 2-D and 3-D Plots에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!