Ordinare gli elementi di una colonna mantendendo l'indice

di il
1 risposte

Ordinare gli elementi di una colonna mantendendo l'indice

Salve gente,
devo ordinare in ordine decrescente gli elementi della terza colonna di una matrice in modo che si "portino appresso" i valori corrispondenti della prima e seconda colonna, rappesentanti le coordinate. Non potendo utilizzare la funzione sort che mi ordina separatamente tutte le colonne, pensavo di fare un ciclo. Sono riuscita ad estrarre la rigacorrispondente al valore massimo, ma non so come andare avanti. Posto quello che ho fatto finora.
clear all

V=[ 55    13   424;    56    13   456;    57    13   333;    58    13   333;    59    13   293;    60    13   575;    61    13   648;    15    14   654;    16    14   596;    17    14   587;    18    14   588]
w=length(V);
M=max(V(:,3));
m=min(V(:,3));


for i=1:w
       if V(i,3)==M
            O(1,:)=V(i,:);
            Q=V;
            Q(1,:)=[]
       end
end
disp(O)
Grazie a tutti quelli che risponderanno!!

1 Risposte

  • Re: Ordinare gli elementi di una colonna mantendendo l'indice

    Ciao, non conosco il linguaggio matlab, però potrei provare a darti una mano con il ragionamento.
    Dovresti fare due cicli for uno dentro l'altro:
    for i=1:w
    for j=i+1:w
    if(V(i,3)>V(j,3)) quindi il primo è maggiore
    a = V(i,3)
    V(i,3)=V(j,3)
    V(j,3)=a
    end
    end
    end
    questo dovrebbe ordinare la matrice in riga 3 in ordine crescente
Devi accedere o registrarti per scrivere nel forum
1 risposte