필터 지우기
필터 지우기

Combining two arrays using a seconds order

조회 수: 1 (최근 30일)
Fatih
Fatih 2024년 2월 18일
댓글: Fatih 2024년 2월 20일
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.
Thanks in advance
  댓글 수: 2
Rik
Rik 2024년 2월 18일
Should it only be the first 5 values?
You can use the ismember function to do this. What have you tried so far?
Fatih
Fatih 2024년 2월 18일
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
Matt J 2024년 2월 18일
편집: Matt J 2024년 2월 18일
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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Multidimensional Arrays에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by