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

조회 수: 4(최근 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

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

### 범주

Find more on Matrix Indexing in Help Center and File Exchange

### Community Treasure Hunt

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

Start Hunting!