# Combining two arrays using a seconds order

3 views (last 30 days)
Fatih on 18 Feb 2024
Commented: Fatih on 20 Feb 2024
I have two arrays.
number = [8 9 4 1 2 3 6 7 10 5]
number2 = [5 1 6 7 3 4 10 9 8 2]
I would like to replace the first 5 values of number (8 9 4 1 2)
with the same order for these values in number2 (1 4 9 8 2). So the revised number will be [1 4 9 8 2 3 6 7 10 5] as the next five numbers will not change.
##### 2 CommentsShow NoneHide None
Rik on 18 Feb 2024
Should it only be the first 5 values?
You can use the ismember function to do this. What have you tried so far?
Fatih on 18 Feb 2024
thanks, meanwhile I used exactly what you mentioned. The following code worked for me.
++
number = randperm(10, 10)
number2 = randperm(10, 10)
[tf, loc] = ismember(number(1:5), number2)
loc2 = sort(loc)
number = [number2(loc2) number(6:10)]
++

Matt J on 18 Feb 2024
Edited: Matt J on 18 Feb 2024
number = randperm(10, 10)
number = 1x10
10 5 4 3 1 9 8 6 2 7
number2 = randperm(10, 10)
number2 = 1x10
8 6 5 3 7 10 2 1 4 9
I=ismember(number2,number(1:5));
number(1:5)=number2(I)
number = 1x10
5 3 10 1 4 9 8 6 2 7
Fatih on 20 Feb 2024
thanks

### Categories

Find more on Multidimensional Arrays in Help Center and File Exchange

### Community Treasure Hunt

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

Start Hunting!