Asignar rango a números en un vector

Quiero poder asignar un rango a los números en un vector dependiendo de su tamaño y hacer un nuevo vector que contenga estos rangos.

Por ejemplo, si tengo el vector.[5, 2, 3, 1], Quiero regresar[4, 2, 3, 1] (ya que 5 es el número más grande y 1 es el más pequeño). Los números iguales deben compartir un rango promedio preferiblemente (por ejemplo, si ambos son iguales y son los más bajos, deberían obtener un rango promedio de 1.5).

¿Cómo puedo lograr esto en MATLAB?

Respuestas a la pregunta(2)

Su respuesta a la pregunta