Index exceeds matrix dimensions

조회 수: 1 (최근 30일)
Ken
Ken 2016년 10월 14일
댓글: Walter Roberson 2016년 10월 15일
I have the foll. program and when I run it, I get the above error msg i.e. 'Index exceeds matrix dimensions'. Not sure what causes this msg. Please help.
A=[2,2,3,4,5;2,3,6,8,9;3,4,7,6,4;2,9,0,4,5;3,8,7,9,2];
%x=1;
%y=1;
OptimalPath=[2,2];
CurrentPos=[2,2];
min=99;
for x=OptimalPath(end,1)-1:OptimalPath(end,1)+1;
for y= OptimalPath(end,2)-1:OptimalPath(end,2)+1
if A(x,y)<min
min=A(x,y);
end
CurrentPos(1)=CurrentPos(1)+x;
CurrentPos(2)=CurrentPos(2)+y;
OptimalPath=[OptimalPath;CurrentPos]
end
end

답변 (1개)

Roche de Guzman
Roche de Guzman 2016년 10월 14일
Your y For Loop counter is becoming greater than 5 (the number of columns of your matrix A). Since you are using y for indexing, A(x,y), then you are exceeding the matrix dimensions.
  댓글 수: 3
Ken
Ken 2016년 10월 15일
Anyone care to respond? Also how to correct this?
Walter Roberson
Walter Roberson 2016년 10월 15일
dbstop if error
then run your code. When it stops, examine the size() of each variable being indexed, and examine the value of each of the indexing expressions. The more difficult part is then trying to figure out either how the indexing expression got to be that wrong value, or trying to figure out why the variable being indexed is not as large as expected.
(Hint for the future: if the variable being indexed is not as large as expected, check to see if you are using the / operator somewhere that you need the ./ operator.)

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

카테고리

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