MATLAB: How to get the vector rankings as per values without common rankings

a]=sort(x) [ab]=unique(x)i have a problem of x=[1 3 4 2 3] ... i want its answer should be a=[1 3 5 2 4]and not in form of a=[1 3 4 2 3]... these are not giving desired results [~

I have a problem of x=[1 3 4 2 3] … I want its answer should be a=[1 3 5 2 4]and not in form of a=[1 3 4 2 3]…
These are not giving desired results [~,a]=sort(x) [a,b]=unique(x)

Best Answer

One easy way is to add a very small value to each element of the vector to make them all unique:
>> x = [1,3,4,2,3];
>> [~,~,c] = unique(x+eps*(1:numel(x)))
c =
1 3 5 2 4
This will work assuming that you have fewer than 1/eps() elements, and that they are all integer.