How to compute harmonic average on the blocks of an array?
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Nisar Ahmed
le 17 Août 2022
Commenté : Nisar Ahmed
le 18 Août 2022
Hi,
I have attached the data Mmin, I want to compute the harmonic average of first 4 values and then next 4 and so on. In short in the blocky form and each block is of 4 values.
Just like shown in the attached figure. after taking harmonic mean of first four values, there will be one value instead of four and so on.
Can someone help me to write it code?
Thanks
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1100510/image.jpeg)
0 commentaires
Réponse acceptée
David Hill
le 17 Août 2022
a=randi(100,1,100);%some vector
for k=1:length(a)-3
A(k)=harmmean(a(k:k+3));
end
4 commentaires
David Hill
le 18 Août 2022
Modifié(e) : David Hill
le 18 Août 2022
I misunderstood you. I thought you wanted a rolling harmonic mean 1-4 then 2-5, then 3-6, 4-7, etc. I simple change will correct.
a=randi(100,1,32);%some vector
c=1;
for k=1:4:length(a)-3
A(c)=harmmean(a(k:k+3));
c=c+1;
end
A
Or
m=movsum(1./a,4,'Endpoints','discard');
A=4./m(1:4:end)
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Operators and Elementary Operations dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!