[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