why do I receive "Index in position 1 is invalid. Array indices must be positive integers or logical values"

조회 수: 3 (최근 30일)
Rebecca D'Onofrio . 2021년 9월 2일
답변: Daniel Pollard . 2021년 9월 2일
B=6E-5;
MAT=zeros(26,26);
for i=1:26
for i=j
MAT(i,j)=[D*B+REM]
end
end

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

채택된 답변

Daniel Pollard 2021년 9월 2일
i and j in MATLAB both have the default value of the complex unit. When you say
for i = 1:26
you override this, so now i takes the value in that for loop.
When you say
for i = j
you then reset i to be equal to the complex unit again. This is not an integer or logical so cannot be used as an index. I supsect what you want to do is
B=6E-5;
MAT=zeros(26,26);
for ii = 1:26
for jj = 1:26
MAT(ii, jj)=[D*B+REM]
end
end

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

추가 답변 (1개)

KSSV 2021년 9월 2일
In MATLAB the indexing should be always positive integers and/ or logical.
A = rand(1,10) ;
A(1) % no error
A(10) % no error
idx = A>0.5
A(idx) % no error
A(1.5) % error becuase 1.5 is not integer
A(-1) % error neghative not allowed

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

카테고리

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