changing similar numbers in a raw

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 Commento

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

Accedi per commentare.

Risposte (2)

nadia nadi
nadia nadi il 3 Apr 2022

0 voti

Thanks for replying, but i need to keep the numbers 1,3,4 without change their position.
Best
Arif Hoq
Arif Hoq il 4 Apr 2022
Modificato: Arif Hoq il 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

Categorie

Scopri di più su Programming in Centro assistenza e File Exchange

Richiesto:

il 3 Apr 2022

Modificato:

il 4 Apr 2022

Community Treasure Hunt

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

Start Hunting!

Translated by