How to link two arrays?

3 Ansichten (letzte 30 Tage)
Meshooo
Meshooo am 30 Jan. 2017
Kommentiert: Meshooo am 31 Jan. 2017
Dear all,
I have two arrays:
A = [1,2,3,4,5,6,7,8,9,10];
B = [11,12,13,14,15,16,17,18,19,20];
If A became New_A = [4,3,2,1,10,9,8,7,6,5];
Then how to apply the same change to B such that
New_B = [14,13,12,11,20,19,18,17,16,15].
Any help will be appreciated.
Meshoo

Akzeptierte Antwort

Stephen23
Stephen23 am 30 Jan. 2017
Bearbeitet: Stephen23 am 30 Jan. 2017
Assuming that the elements are unique, then ismember will work:
>> A = [1,2,3,4,5,6,7,8,9,10];
>> B = [11,12,13,14,15,16,17,18,19,20];
>> New_A = [4,3,2,1,10,9,8,7,6,5];
>> [~,idx] = ismember(New_A,A);
>> New_B = B(idx)
New_B =
14 13 12 11 20 19 18 17 16 15
  1 Kommentar
Meshooo
Meshooo am 31 Jan. 2017
Thank you very much.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Jan
Jan am 30 Jan. 2017
If A contains the sorted numbers from 1 to n as in your example, the solution is easy:
B_new = B(A_new);
But maybe this matters the example data for the forum only.
  1 Kommentar
Meshooo
Meshooo am 31 Jan. 2017
Thank you Jan. Yeah I have more complex situations and it is not always serial numbers.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Characters and Strings finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by