Arrange (array of 9 numbers) in ascending order. (no sort)
Mostrar comentarios más antiguos
Please suggest me to find a commnad using for loop to Arrange (array of 9 numbers) in ascending order without using sort command. I used the following one, which didn't work
A = [4 16 36 64 1 9 25 49 81] B = [] for i = 1:9
B(i) = max(A)
find max(A)== 0
end
2 comentarios
per isakson
el 19 de Sept. de 2012
Google for "bubble sort"
Aviroop Dutt Mazumder
el 21 de Sept. de 2012
Respuestas (2)
Honglei Chen
el 19 de Sept. de 2012
You can do
B = unique(A)
But seriously, are you trying to implement a sort algorithm in MATLAB? If so, there are many algorithms available, e.g., quick sort
1 comentario
Aviroop Dutt Mazumder
el 21 de Sept. de 2012
Jan
el 22 de Sept. de 2012
Improvement of your method:
A = [4 16 36 64 1 9 25 49 81];
B = zeros(1, 9); % Pre-allocate!
for ii = 1:9
[value, index] = max(A);
B(ii) = value;
A(index) = -Inf;
end
For 9 elements an insert-sort would be fine also.
6 comentarios
Safwan
el 22 de Nov. de 2016
Can you please explain to me why did you put
A(index) = -Inf;
Image Analyst
el 22 de Nov. de 2016
So that element of A will no longer be found as the maximum value of A in subsequent iterations. If you didn't do this, it would simply find the very same value of A each iteration!
James Tursa
el 22 de Nov. de 2016
This is to eliminate that particular element from the result of the next max(A) calculation, since that element has already been placed into the B vector.
Larissa Monjaraz
el 7 de Mzo. de 2021
How would the code change if you wanted it in descending order?
Walter Roberson
el 7 de Mzo. de 2021
use min and +inf
Larissa Monjaraz
el 7 de Mzo. de 2021
Ooooh that makes sense. Thank you!
Categorías
Más información sobre Resizing and Reshaping 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!