give number to sequence
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Jay Hanuman
am 30 Dez. 2016
Bearbeitet: Jay Hanuman
am 30 Dez. 2016
I have sequence
a=[17 56 42 12 12 99 102 45 76 76 41 99 12 45 56 17 76 86 125 160 36]
I want to do that give numbering to sequence starting from 1 i.e.minimum value is 12 so give it 1 then next value greater than 12 is 17 so give it 2 likewise so
a = [17 56 42 12 12 99 102 45 76 76 41 99 12 45 56 17 76 86 125 160 36]
a1 = [2 7 5 1 1 10 11 6 8 8 4 10 1 5 7 2 8 9 12 13 3]
how to do this.
0 Kommentare
Akzeptierte Antwort
Image Analyst
am 30 Dez. 2016
Here's one semi-vectorized way:
a=[17 56 42 12 12 99 102 45 76 76 41 99 12 45 56 17 76 86 125 160 36]
uniquea = unique(a)
labels = 1 : length(uniquea)
for k = 1 : length(a)
index = find(a(k) == uniquea);
a1(k) = labels(index);
end
3 Kommentare
Image Analyst
am 30 Dez. 2016
My code gives
a1 =
Columns 1 through 17
2 7 5 1 1 10 11 6 8 8 4 10 1 6 7 2 8
Columns 18 through 21
9 12 13 3
Tell me which elements are not in the same order as the a1 you gave, which is a1 = [2 7 5 1 1 10 11 6 8 8 4 10 1 5 7 2 8 9 12 13 3]
I'm just not seeing any difference between my output and yours so I need you to point it out to me. Which indexes are bad?
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Numeric Types finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!