How to compute harmonic average on the blocks of an array?
4 次查看(过去 30 天)
显示 更早的评论
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
0 个评论
采纳的回答
David Hill
2022-8-17
a=randi(100,1,100);%some vector
for k=1:length(a)-3
A(k)=harmmean(a(k:k+3));
end
4 个评论
David Hill
2022-8-18
编辑:David Hill
2022-8-18
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)
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Operators and Elementary Operations 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!