Finding mean values several times.
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
I want to find the mean of one part of a vector. I take the mean value of A1-5 , then A2-6, A3-7 and so on. I use this code: A(i)=mean(vector(i:i+4))
The problem is at the end of the vector. If its 10 A values I want the last average to go A5-10, A6-10, A7-10 and so on.
If it is a easy way to do this step several times I also want some help with this. So if 1=A1-5, 2=A2-6, 3=A3-7, I want to take average of 1-5, 2-6, 3-7 and so on.
I want to do this 4 or 5 times so I can find smothen out the values and find the peaks.
This was hard to describe, Hope you understand me.
2 comentarios
David Wilson
el 7 de Mayo de 2020
One option is to pad the end with enough NaNs, then use mean with the 'omitnan' flag, mean(..., 'omitnan')
Respuestas (2)
Paresh yeole
el 7 de Mayo de 2020
for i=1:n
if i+4<length(vector)
A(i) = mean(vector(i:i+4));
else
A(i) = mean(vector(i:end));
end
end
2 comentarios
Steven Lord
el 7 de Mayo de 2020
It sounds like the answer to the question you asked is movmean but you may not need to call movmean yourself.
Take a look at the smoothdata function to smooth your data and the islocalmax function to detect the local peaks. One of the options for how to smooth the data that smoothdata accepts is 'movmean'.
0 comentarios
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!