Indexing error using sum

조회 수: 2 (최근 30일)
Sordin
Sordin 2019년 5월 19일
편집: madhan ravi 2019년 5월 19일
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
KALYAN ACHARJYA
KALYAN ACHARJYA 2019년 5월 19일
Perhaps reflects error of exceeds array bounds, in this case too.
madhan ravi
madhan ravi 2019년 5월 19일
Didn't test while commenting.

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

채택된 답변

KALYAN ACHARJYA
KALYAN ACHARJYA 2019년 5월 19일
편집: KALYAN ACHARJYA 2019년 5월 19일
signal(i-n:i+n,:)
%.......^ here is the issue
When you run the code n=3 initial and k=2;
When you assigned i=k:... that menas first value is 2
signal(2-3:2+3,:)...
Which trsult >> signal(-1:5,:)
%.......................^......
Negative and zero index value is not allowed. index value must be positive integer only as stated in error message-
Array indices must be positive integers or logical values. Soln: If you want to use the same expression >>Modify the initial value such a way that k>n, ensure that k value is integer.
Learn array indexing here
  댓글 수: 8
madhan ravi
madhan ravi 2019년 5월 19일
편집: madhan ravi 2019년 5월 19일
Sordin: Could you post the solution ? As far as I understand are you trying to average the vector by n terms ?, if so this is achieved even without a loop.
KALYAN ACHARJYA
KALYAN ACHARJYA 2019년 5월 19일
편집: KALYAN ACHARJYA 2019년 5월 19일
Commnent to @madhan ravi only today I have traced you in linkedIn. Great to see that you are too young. Keep it up and pls do continue to teach me in future too.
Gratitude to you!
Regards
Kalyan Acharjya

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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Matrix Indexing에 대해 자세히 알아보기

제품


릴리스

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by