Arrange (array of 9 numbers) in ascending order. (no sort)
이전 댓글 표시
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개)
Honglei Chen
2012년 9월 19일
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
Jan
2012년 9월 22일
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
Safwan
2016년 11월 22일
Can you please explain to me why did you put
A(index) = -Inf;
Image Analyst
2016년 11월 22일
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
2016년 11월 22일
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
2021년 3월 7일
How would the code change if you wanted it in descending order?
Walter Roberson
2021년 3월 7일
use min and +inf
Larissa Monjaraz
2021년 3월 7일
Ooooh that makes sense. Thank you!
카테고리
도움말 센터 및 File Exchange에서 Resizing and Reshaping Matrices에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!