How to compute harmonic average on the blocks of an array?
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Nisar Ahmed
am 17 Aug. 2022
Kommentiert: Nisar Ahmed
am 18 Aug. 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
0 Kommentare
Akzeptierte Antwort
David Hill
am 17 Aug. 2022
a=randi(100,1,100);%some vector
for k=1:length(a)-3
A(k)=harmmean(a(k:k+3));
end
4 Kommentare
David Hill
am 18 Aug. 2022
Bearbeitet: David Hill
am 18 Aug. 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)
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!