How can I replace this a value in the array with the k where the value is k-th min?
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I wanted to elaborate on the title, but it's not easy, so I'll explain it with the following example.
For example, there is [1 434 22 434 23 53 89 199]
I want to change it to [1 7 2 7 3 4 5 6]
434 is 7th min value. 22 is 2nd min value.
I want to know what i th min value of the each value is, and it insert to the matrix.
2 Kommentare
Shameer Parmar
am 2 Jul. 2019
what is mean by "434 is 7th min value. 22 is 2nd min value." How you calculated this ?
Shameer Parmar
am 2 Jul. 2019
Here you go..
A = [1 434 22 434 23 53 89 199];
newVector = [];
for i=1:length(A)
minimum = find(ismember(unique(A),A(i)));
newVector = [newVector, minimum];
end
Akzeptierte Antwort
Guillaume
am 2 Jul. 2019
This is the simplest:
v = [1 434 22 434 23 53 89 199]
[~, ~, newv] = unique(v)
Weitere Antworten (1)
Chirag Nighut
am 2 Jul. 2019
A = [1 434 22 434 23 53 89 199];
u = unique(A)
for i=1:1:length(A)
A(find(A==u(i))) = i;
end
0 Kommentare
Siehe auch
Kategorien
Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!