I need help arranging two vectors
Mostrar comentarios más antiguos
Suppose I have an area vector, composed of two vectors, length and width multiplied together. If I arrange the area from low to high how can I arrange my vector of length and width to match the entries used in the newly arranged area vector. Example: Area(1) = 200, Length(1) = 100, Width(1) = 2, after I sort vector Area, Area(1) moves to Area(3), how do I move Length(1) to Length(3) and also Width(1) to Width(3). Note, my array has 5000 entries.
Respuestas (2)
David Young
el 15 de Mzo. de 2015
[AreaSorted, idx] = sort(Area);
LengthSorted = Length(idx);
WidthSorted = Width(idx);
Guillaume
el 15 de Mzo. de 2015
Use the second return value of sort which is the original index of the sorted values. Use it to reorder your width and height vector:
width = [5 10 15 20];
height = [14 11 8 5];
area = width .* height;
[area, origidx] = sort(area);
width = width(origidx)
height = height(origidx)
1 comentario
Colt Davis
el 15 de Mzo. de 2015
Categorías
Más información sobre Shifting and Sorting Matrices en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!