MATLAB: Indexing problem based on value

indexing

Hi,
I encountered a strange problem. For A= [5 4 3 2 1 0 1 2 3 4 5];
I can't do B = A(1): A(6). The return is 1×0 empty double row vector. if I do A(7): A(8) or start from index 7, I can get the output.
I am not sure what is the source of problem. I expected A(1) : A(6) = [5 4 3 2 1 0].
I tried A(1:6) and it works. what is the difference between A(1:6) and A(1): A(6) while the latter doesn't work?
Thanks.

Best Answer

B = A(1:6)
You should read about array indexing in MATLAB. MATLAB indices are always nonzero positive integers.
When you use A(1:6), it means in the array A pick indices from 1 to 6.
When you try A(1):A(6), it will try to generate an array with a difference of 1, from the value A(1) i.e 5 to A(6) i.e 0, this will work when start value is low and end value is high, in your case they are 5 and 0, so :, cannot generate an array. Where as try A(6):A(1), it will work.