"Index in position 1 exceeds array bounds" error for loop

조회 수: 1 (최근 30일)
Atiqah Zakirah
Atiqah Zakirah 2019년 7월 20일
편집: Rik 2019년 7월 20일
I'm trying to determine if there is a change in sign between the current and next value in my array (size is 2000 x 131) and count the number of times there is a change using a for loop as shown in the following code. The error lies in line "nextVal = brakingData(j+1,k)". I can't understand why this is an error. Why is the inital value of j 2000 when I run the loop? Shouldn't it be 1? How do I go about solving this error?
for k = 1:size(brakingData,2) %131
zeroCrossCount = 0;
for j = 1:length(brakingData) %2000
currentVal = brakingData(j,k);
nextVal = brakingData(j+1,k);
if ~isequal(sign(currentVal), sign(nextVal))
zeroCrossCount = zeroCrossCount + 1;
else
zeroCrossCount = zeroCrossCount + 0;
end
end
brakingFreqValue = zeroCrossCount/20;
brakingFreq(:,k) = brakingFreqValue;
end

답변 (1개)

Rik
Rik 2019년 7월 20일
편집: Rik 2019년 7월 20일
Instead of this line
for j = 1:length(brakingData)
Use this:
for j = 1:(size(brakingData,1)-1)
Although you can replace the loop with an array operation.

카테고리

Help CenterFile Exchange에서 Multidimensional Arrays에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by