Filter löschen
Filter löschen

Indexing problem based on value?

1 Ansicht (letzte 30 Tage)
HYZ
HYZ am 22 Mai 2020
Bearbeitet: SHIVANI CHORGE am 22 Mai 2020
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.

Akzeptierte Antwort

KSSV
KSSV am 22 Mai 2020
Bearbeitet: KSSV am 22 Mai 2020
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.

Weitere Antworten (1)

SHIVANI CHORGE
SHIVANI CHORGE am 22 Mai 2020
Bearbeitet: SHIVANI CHORGE am 22 Mai 2020
A(1) : A(6)=A(1:6)
A= [5 4 3 2 1 0 1 2 3 4 5]
this is in vector form hence A(1) : A(6) this is not working
if you expected like this A(1) : A(6) = [5 4 3 2 1 0]
than use it
A(1) : A(6)=A(1:6)

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by