mean value of array after every n columns

1 view (last 30 days)
Hi,
I have 1x131072 dataPower array read from matfile. And want to average each every 128 columns. What's the problem here ?
a = matfile('x');
b=a.dataPower; %dataPower array
bround=round(b(1:131072) % array include double values like 297.3865 and just try to cast to 297 for example.
for i = 1024
k(i) = mean(bround((i-1)*128+1:i*128),2)
end
And want to get 1024 value. But error : subscript indices must either be real positive integers or logicials.
Thanks.

Accepted Answer

Ameer Hamza
Ameer Hamza on 8 Dec 2020
Here is a loop-free option
a = matfile('x');
b=a.dataPower; %dataPower array
bround=round(b(1:131072));
k = mean(reshape(bround, 128, []))
  1 Comment
Fatma Nur Disci
Fatma Nur Disci on 16 Dec 2020
Edited: Fatma Nur Disci on 16 Dec 2020
Hi , I thought that I was deleting this question bcs after asked it, I solved my problem, but it still appears. Thanks for your help, anyway.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!