Index exceeds matrix dimensions when using end

1 view (last 30 days)
I got this cell array called visitcount which has four cells and each cell is an array 1st cell is 9x8 array 2nd cell is 9x8x7x6 array 3rd cell is 9x8x7x6x5x4 array 4th cell is 9x8x7x6x5x4x3x2 array
when I am trying to access the array in the 2nd cell through this line
visitcount{turn}(humanindex{1:end-1}, end)
I get "Index exceeds matrix dimensions" error
I error is caused by the bold "end" statement as I tried to remove it and put some numbers and it works no problem from 1 to 6 so end should indicate the element no 6 in this array,
humanindex is a cell array that increases according to which cell i am using to indicate the indeces according to which cell and in this case it has 4 inputs
I use MATLAB r2012a
  3 Comments
Mohamed
Mohamed on 16 Dec 2012
It depends on which turn so if turn is 1 then humanindex is 2x1 cell array each contains one number indicating indices, the problem occurred starting from turn = 2 at the 4D array
Jan
Jan on 16 Dec 2012
Please use dots to separate the sentences.

Sign in to comment.

Answers (1)

Azzi Abdelmalek
Azzi Abdelmalek on 16 Dec 2012
Edited: Azzi Abdelmalek on 16 Dec 2012
Look at this example
visitcount={rand(9,8) rand(9,8,7,6) rand(9,8,7,6,5,4) rand(9,8,7,6,5,4,3,2)};
humanindex={1 2 4 6 8};
hindex=cell2mat(humanindex)
turn=3
visitcount{turn}(hindex(1:end-1), end)
%The celllarray humanindex is causing the problem
  2 Comments
Mohamed
Mohamed on 16 Dec 2012
Edited: Mohamed on 16 Dec 2012
Well not really, there's a big error here which is that you are calling more than one element in the array which is not what I aim at I'm trying to call one element only, I am using cell array to address more than one dimension but if I convert it into matrix then it just gives me more than one value
I actually tried to index using normal indices instead of cell array and it worked but that did not solve my case as I need variable number of indices, I actually solved it using another way of indexing rather than end.
but remains the question, WHY DOES MATLAB GIVE AN ERROR?
Image Analyst
Image Analyst on 16 Dec 2012
Well which ONE element to you want? You're the one who gave us the range "1:end-1" which is all rows of humanindex except for the last row. And you said "access the array in the 2nd cell" - you didn't say you wanted to access a single element of that array, you said the (whole) array.

Sign in to comment.

Categories

Find more on Matrices and Arrays in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!