Sorting data points so x are in ascending order.

53 visualizaciones (últimos 30 días)
David
David el 3 de Dic. de 2013
Editada: Viktor el 3 de Dic. de 2013
I have two vectors x and y and they correspond to a given set of data points. How can I sort x in ascending order while at the same time, sorting y so that the values of y match up with their corresponding values of x?? Eg. (1,2) (3, 0) (-4, 6) (-2, 5) would yield vectors x = [1,3,-4,-2] and y = [2,0,6,5] then the sorted vectors would be x = [-4,-2,1,3] and y = [6,5,2,0].

Respuestas (3)

Jos (10584)
Jos (10584) el 3 de Dic. de 2013
Editada: Jos (10584) el 3 de Dic. de 2013
Use the second output of SORT
% example data
X = [1 3 -4 -2]
Y = [2 0 6 5]
[sortedX, sortIndex] = sort(X)
sortedY = Y(sortIndex)
Another option would be via SORTROW

Viktor
Viktor el 3 de Dic. de 2013
Editada: Viktor el 3 de Dic. de 2013
You have a sortrows() function that you can use. Assuming you have two row vectors:
sorted = (sortrows([x',y'], 1))'
% reassigning sorted values
x = sorted(1,:);
y = sorted(2,:);
I just noticed that Jos has already mentioned, I left my answer here, it might be useful.

Andrei Bobrov
Andrei Bobrov el 3 de Dic. de 2013
[x1,ii]= sort(x);
y1 = y(ii);

Categorías

Más información sobre Shifting and Sorting Matrices en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by