Ordonner les variables avec Matlab

Résolu
hassen62 -  
Sacabouffe Messages postés 10427 Statut Membre -
Salut tout le monde,
j'ai un exercice auquel j'ai pas trouvé de solutions:
j'ai un vecteur (a1, a2,...,an) qui peut comporter des valeurs négatives, je voudrais créer une fonction avec matlab qui ordonne selon un ordre croissant ce vecteur en valeurs absolues mais en gardant les signes. C'est à dire si j'ai le vecteur
suivant:(-5,-2,-7,3,8,2,1) je voudrais avoir l'ordre suivant:1 -2 2 3 -5 -7 8.
Est qu'il y a une personne qui peut m'aider. Merci d'avance.
Cordialement,
Hassen.

1 réponse

Sacabouffe Messages postés 10427 Statut Membre 1 835
 
Salut
x=[-5 -2 -7 3 8 2 1];
[y perm]=sort(abs(x));
z=sign(x);
sortx=y.*z(perm);

A plus
5