# Find all unique values and replace it with new values

5 visualizzazioni (ultimi 30 giorni)
Elysi Cochin il 6 Giu 2022
Commentato: Image Analyst il 7 Giu 2022
I have a vector with values
v = [0.23; 0.1; 0.33; 0.23 ; 0.33; 0.6; 0.6; 0.4];
I would like to find the unique values and replace the vector with numbers from 1, like
newV = [1; 2; 3; 1 ; 3; 4; 4; 5];
##### 0 CommentiMostra -2 commenti meno recentiNascondi -2 commenti meno recenti

Accedi per commentare.

### Risposta accettata

Walter Roberson il 6 Giu 2022
findgroups()
But since you are using floating point numbers you really should use the third output of uniquetol() instead
##### 4 CommentiMostra 2 commenti meno recentiNascondi 2 commenti meno recenti
Elysi Cochin il 7 Giu 2022
okay sir will consider that
Image Analyst il 7 Giu 2022
@Elysi Cochin I'm pretty sure you've seen the FAQ on this before but here it is again:

Accedi per commentare.

### Più risposte (2)

KSSV il 6 Giu 2022
v = [0.23; 0.1; 0.33; 0.23 ; 0.33; 0.6; 0.6; 0.4];
[c,ia,newV] = unique(v,'stable') ;
newV
newV = 8×1
1 2 3 1 3 4 4 5
##### 0 CommentiMostra -2 commenti meno recentiNascondi -2 commenti meno recenti

Accedi per commentare.

Image Analyst il 6 Giu 2022
Will this do:
v = [0.23; 0.1; 0.33; 0.23 ; 0.33; 0.6; 0.6; 0.4];
% newV = [1; 2; 3; 1 ; 3; 4; 4; 5];
[g, Tid] = findgroups(v)
g = 8×1
2 1 3 2 3 5 5 4
Tid = 5×1
0.1000 0.2300 0.3300 0.4000 0.6000
I know it doesn't match your desired but it's easy and maybe you don't need that exact order. If you need that exact order, can you explain why you need that order? (And don't jsut say I need it because I need it.)
##### 1 CommentoMostra -1 commenti meno recentiNascondi -1 commenti meno recenti
Elysi Cochin il 6 Giu 2022
Order not important

Accedi per commentare.

### Categorie

Scopri di più su Data Type Conversion in Help Center e File Exchange

### Community Treasure Hunt

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

Start Hunting!

Translated by