Left-hand side indexing issue

Dear all,
I have a matrix A:
A = [1,2,3,4,5,6,7,8; 1,2,3,4,5,6,7,8];
I would like to change the order of matrix columns. If I try for example:
B(:,[4 3 2 1 8 7 6 5]) = A
I get:
B =
4 3 2 1 8 7 6 5
4 3 2 1 8 7 6 5
which is correct.
Now I try:
B(:,[3 8 2 1 6 7 5 4])=A
and I get this weird result:
B =
4 3 1 8 7 5 6 2
4 3 1 8 7 5 6 2
Would you have an explanation? Thank you very much!
Tobard

 Akzeptierte Antwort

Titus Edelhofer
Titus Edelhofer am 28 Nov. 2011

1 Stimme

Hi,
why is it weird? You have for A:
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
Now you assign to the third, eighth, ... column of B the values of A, so the third column of B takes the 1, the eighth column takes the 2 and so on. Or: what did you expect?
Titus

Weitere Antworten (2)

Tobard
Tobard am 28 Nov. 2011

0 Stimmen

Oh I understand what is my problem. I was expecting B to be:
3 8 2 1 6 7 5 4
3 8 2 1 6 7 5 4
So I expected the written indexes to be the column indexes of A in the desired order as andrei bobrov asked. The example I chose unfortunately didn't allow me to understand this mistake.
Thank you all!
Andrei Bobrov
Andrei Bobrov am 28 Nov. 2011

0 Stimmen

here all right
You want is it:
B = A(:,[3 8 2 1 6 7 5 4])

Kategorien

Community Treasure Hunt

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

Start Hunting!

Translated by