Averaging the selected vector ranges

조회 수: 3(최근 30일)
Lev Mihailov
Lev Mihailov 2020년 11월 6일
댓글: Mathieu NOE 2020년 11월 9일
Hello! I need to average the values ​​of a vector over 25 values
fr = mean(reshape(VectorTime, 25, [])); %
Error using reshape
Product of known dimensions, 25, not divisible into total number of elements, 523.
Error in TimeAndWordNN (line 1234)
frr = mean(reshape(VectorTime, 25, []));
When I try to make such a variant, I get an error, please help
for i=1:25:length(VectorTime) && i<length(VectorTime)
frr=mean(VectorTime(i:i+1)) % i(1)=1 i(2)=26
% tried what i need to do through the loop but nothing worked

채택된 답변

Mathieu NOE
Mathieu NOE 2020년 11월 6일
my 2 fold suggestion , first is new code according to your expected results , and second is based on sliding averaging - function is in attachement !
samples = 1000;
VectorTime = 1 + sin(2*pi*(1:samples)/samples)+ 0.25*rand(1,samples);
buffer = 25; % nb of samples for averaging
% zero overlap mean averaging
for ci=1:floor(length(VectorTime)/ buffer)
start_index = 1+(ci-1)*buffer;
stop_index = min(start_index+ buffer,length(VectorTime));
time_index(ci) = round((start_index+stop_index)/2);
frr(ci) =mean(VectorTime(start_index:stop_index)) %
% sliding avg method
out = myslidingavg(VectorTime, buffer);
  댓글 수: 1
Mathieu NOE
Mathieu NOE 2020년 11월 9일
please use this version of slidingavg (if you are interested in)
I have found a bug in the previous release
all the best

댓글을 달려면 로그인하십시오.

추가 답변(0개)


Community Treasure Hunt

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

Start Hunting!

Translated by