Indexing error using sum
이전 댓글 표시
I have written a simple code that performs a moving average smoothing algorithm (it averages n adjacent bins to a single bin similar to Matlab's smooth):
signal = ones(1,30); % Random sample
n=3; % An odd number (filter span)
for i = k : length(signal)-k
NewSignal(i,:) = sum(signal(i-n:i+n,:))/n;
end
However, the second to last line results in the following error:
%Index in position 1 is invalid. Array indices must be positive integers or logical values.
So, what is the cause of this error? And what would be a solution?
Any explanation would be greatly appreciated.
댓글 수: 3
madhan ravi
2019년 5월 19일
signal(n-i:i+n,:)
% ^^^---- perhaps you meant this?
KALYAN ACHARJYA
2019년 5월 19일
Perhaps reflects error of exceeds array bounds, in this case too.
madhan ravi
2019년 5월 19일
Didn't test while commenting.
채택된 답변
추가 답변 (0개)
카테고리
도움말 센터 및 File Exchange에서 Signal Attributes and Indexing에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!