How to get origin vector form indexd matrix

I have a 1xK row vector A generated by randi function, and K is even number
K=6;
A = randi([50 500],1,K);
A will rearrage by a K/2x1 index matrix which the index matrix is obtained from some algorithm, for example
idx = [1 3;4 5;2 6];
B = A(idx);
I want to get a vector C same as A from B, but I can't do
C = A
in my case. How should I do?
Very appreciate for any suggestion.

 Respuesta aceptada

Jan
Jan el 18 de Mayo de 2021
Editada: Jan el 18 de Mayo de 2021
K = 6;
A = randi([50 500], 1, K)
A = 1×6
71 409 445 202 193 95
idx = [1 3;4 5;2 6];
B = A(idx)
B = 3×2
71 445 202 193 409 95
C(idx) = B
C = 1×6
71 409 445 202 193 95
Of course, because if you omit the indirection over B you have:
C(idx) = A(idx)
which is an exact copy.

Más respuestas (1)

Scott MacKenzie
Scott MacKenzie el 18 de Mayo de 2021
idx2 = [1 3 4 2 5 6];
C = B(idx2)

2 comentarios

WJ
WJ el 18 de Mayo de 2021
Thanks for answer, but the idx will be dynamic not fix.
Scott MacKenzie
Scott MacKenzie el 18 de Mayo de 2021
Editada: Scott MacKenzie el 18 de Mayo de 2021
Ok, got it. See Jan's answer. He's nailed it.

Iniciar sesión para comentar.

Productos

Versión

R2019b

Etiquetas

Preguntada:

WJ
el 18 de Mayo de 2021

Editada:

el 18 de Mayo de 2021

Community Treasure Hunt

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

Start Hunting!

Translated by