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

Community Treasure Hunt

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

Start Hunting!