changing similar numbers in a raw

1 view (last 30 days)
nadia nadi
nadia nadi on 3 Apr 2022
Edited: Arif Hoq on 4 Apr 2022
Dear all,
I have a raw with repeated numbers. I want to change them to different onse exactly like the randperm.
X=[1 2 2 2 3 2 4 2 2 2];
i want to make it
X=[1 2 4 3 7 5 8 6 10 9];
many thanks
  1 Comment
KALYAN ACHARJYA
KALYAN ACHARJYA on 3 Apr 2022
Edited: KALYAN ACHARJYA on 3 Apr 2022
X=[1 2 2 2 3 2 4 2 2 2];
Desired result? Any issue?
X=randperm(length(X))
X = 1×10
8 5 1 9 6 4 2 3 7 10

Sign in to comment.

Answers (2)

nadia nadi
nadia nadi on 3 Apr 2022
Thanks for replying, but i need to keep the numbers 1,3,4 without change their position.
Best

Arif Hoq
Arif Hoq on 4 Apr 2022
Edited: Arif Hoq on 4 Apr 2022
try this:
X=[1 2 2 2 3 2 4 2 2 2];
a=X(X==2);
b=randperm(length(a));
a=b;
X(X==2)=0;
X(X==0)=a
X = 1×10
1 5 6 2 3 7 4 1 4 3

Categories

Find more on Performance and Memory 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!