I have two vectors x and y
x = 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 0.66
y = 0.051998 0.084698 0.117398 0.150098 0.182798 0.215498 0.248198 0.19 0.09 0.235118
I want to make the matrix [x,y] in such a way that x is in ascending, i.e., results should be
x = 0.1 0.2 0.3 0.4 0.5 0.6 0.66 0.7 0.8 0.9
y = 0.051998 0.084698 0.117398 0.150098 0.182798 0.215498 0.235118 0.248198 0.19 0.09
Any suggestions are apreciated and thankyou in advance for your help !!

 Réponse acceptée

x = [ 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 0.66 ];
y = [ 0.051998 0.084698 0.117398 0.150098 0.182798 0.215498 0.248198 0.19 0.09 0.235118 ];
[~,idx] = sort(x);
M = [x(idx); y(idx)]
M = 2×10
0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.6600 0.7000 0.8000 0.9000 0.0520 0.0847 0.1174 0.1501 0.1828 0.2155 0.2351 0.2482 0.1900 0.0900

Plus de réponses (1)

Slightly different but essentially the same
x = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 0.66];
y = [0.051998, 0.084698, 0.117398, 0.150098, 0.182798, 0.2154908, 0.248198, 0.19, 0.09, 0.235118];
% Sort (and replace) x and get the order in which it was sorted.
[x, sortOrder] = sort(x, 'ascend')
x = 1×10
0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.6600 0.7000 0.8000 0.9000
sortOrder = 1×10
1 2 3 4 5 6 10 7 8 9
% Sort y using the same order as x used, replacing original y with new, sorted y.
y = y(sortOrder)
y = 1×10
0.0520 0.0847 0.1174 0.1501 0.1828 0.2155 0.2351 0.2482 0.1900 0.0900

Catégories

Produits

Version

R2021b

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by