Index expression out of bounds. Attempted to access element 2. The valid range is 1-1.“2”

조회 수: 3 (최근 30일)
I keep getting this error, my desired output is to get abs(I(2,ii(a))-I(2,ii(a)-1) so that when ii(a)=2, I want I(2,2) minus I(2,1) which is 5.1 minus 5.0 : Index expression out of bounds. Attempted to access element 2. The valid range is 1-1."2".
The error is due to this line:
arr(1,ii(a)) = arr(1,ii(a)) + abs(I(2,ii(a))-I(2,ii(a)-1));.
I define I as the following in .mat file:
save data -v7.3 'I' load('data.mat','I');
I =
Columns 1 through 6
0 1.0000 2.0000 3.0000 4.0000 5.0000
5.0000 5.1000 5.2000 5.2000 5.5000 5.9000
Column 7
6.0000
6.0000

답변 (1개)

Azzi Abdelmalek
Azzi Abdelmalek 2013년 11월 8일
Check the sizes of ii and I, check also if all values in ii are positive integer
  댓글 수: 8
Azzi Abdelmalek
Azzi Abdelmalek 2013년 11월 8일
there are some problems in your code
function arr= fcn(I,count,oldval) % I is not used in your code
aa=zeros(2,5); this line is unnecessary, because just after you wrote also aa=load('data.mat','I'); in this case the result is a structure array named aa with field I , note that I has nothing to do with I in function argument. to get the value
aa=aa.I
want2know
want2know 2013년 11월 8일
Got it, i changed according to your suggestion and it worked, however the system is giving wrong output mathematically. Do you mind to have a look on this new post? I created new question http://www.mathworks.com/matlabcentral/answers/105388-calculation-error-system-always-gives-output-0-0-0-value-in-index-3-value-in-index-1-0

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

카테고리

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