# Error ' Index in position 2 exceeds array bounds'.how to correct this.

조회 수: 1 (최근 30일)
ANCY S GEORGE 2022년 4월 6일
편집: ANCY S GEORGE 2023년 1월 30일
When run it, shows
"Index in position 2 exceeds array bounds. Index
must not exceed 2.
Error in practice (line 20)
while(abs(a(k)-a(k-1))>=0.01) && abs(b(k)-b(k-1))>=0.01 && rms(abs(A(:,k)-A(:,k-1)))>=0.01"

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

### 채택된 답변

Geoff Hayes 2022년 4월 6일
편집: Geoff Hayes 2022년 4월 6일
@susan sara - in your while loop conditions
while(abs(a(k)-a(k-1))>=0.01) && abs(b(k)-b(k-1))>=0.01 && rms(abs(A(:,k)-A(:,k-1)))>=0.01
you have
rms(abs(A(:,k)-A(:,k-1)))
. At the end of the loop you do
k=k+1;
. I don't see anywhere in the code where you update A for k+1 and so I suspect the error message is originating when indexing into A on the second iteration of the loop when k is 3. You may want to review this code
for j=x(1):1:x(length(i))
A(j,k)=((H(j))/(a(k)))-1
for j=y(1):1:y(length(i))
A(j,k)=((H(j))/(b(k)))-1
end
for j=z(1):1:z(length(i))
A(j,k)=G(j)
end
Is the above correct? Is there a missing end for the first for loop?

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

### 카테고리

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

### Community Treasure Hunt

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

Start Hunting!

Translated by