[Matlab]Ordinamento vettore
% ordina un vettore dal più piccolo elemento in sù
function ord = ordina(x)
n = size(x,1);
xnew = zeros(n,1);
for i=1:n % i mi va da 1 a n x=(--->)
for j=i:n % j mi va da i a n x=(... i-->)
if x(i) == min(x(j:1:end))
xnew(j) = x(i); % xnew=(x(i), .., x(i),..)
end
end
% controllo se ha lavorato
if x == xnew
warning('on','Non ho fatto nulla!!')
end
end
ord=xnew;
end
Credo il problema sia qui min(x(j:1:end)) ma non capisco come fare...
Risposte
ho risolto con un simil bubble-sort..
% ordina un vettore dal più piccolo elemento in sù
function ord = ordina(x)
% -- Dichiarazioni --
n = size(x,1);
% ----
for i=1:n
for j=1:n-1
if x(j) > x(j+1)
temp = x(j);
x(j) = x(j+1);
x(j+1) = temp;
end
end
end
% ----
% restituisco e esco
ord=x;
end