How can I replace this a value in the array with the k where the value is k-th min?

조회 수: 1 (최근 30일)
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
Shameer Parmar
Shameer Parmar 2019년 7월 2일
what is mean by "434 is 7th min value. 22 is 2nd min value." How you calculated this ?
Shameer Parmar
Shameer Parmar 2019년 7월 2일
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

댓글을 달려면 로그인하십시오.

채택된 답변

Guillaume
Guillaume 2019년 7월 2일
This is the simplest:
v = [1 434 22 434 23 53 89 199]
[~, ~, newv] = unique(v)

추가 답변 (1개)

Chirag Nighut
Chirag Nighut 2019년 7월 2일
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

카테고리

Help CenterFile Exchange에서 Matrix Indexing에 대해 자세히 알아보기

태그

제품

Community Treasure Hunt

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

Start Hunting!

Translated by