sort a matrix without using sort function

조회 수: 36 (최근 30일)
John
John 2013년 1월 22일
댓글: Jan 2017년 10월 2일
how can I sort this matrix in descend order(only columns) without using sort function (my homework). for example: A= [
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9 ]
to
B=[
24 17 15 8 1
23 16 14 7 5
22 20 13 6 4
. . . . . .. . .
.. .. . .. . .. . ]
thanks
  댓글 수: 3
John
John 2013년 1월 22일
thanks for your help ,I was able to get this script work. thank your very much.
Cedric
Cedric 2013년 1월 22일
+1 for the "homework" tag! If other students were as honest as that, they would get more of my time ;-)

댓글을 달려면 로그인하십시오.

답변 (1개)

Jan
Jan 2013년 1월 22일
편집: Jan 2017년 10월 1일
Here a solution, which I would not submit except with a bold explanation:
B = zeros(size(A));
n = size(A, 2);
for iRow = 1:size(A, 1)
v = A(iRow, :);
while any(diff(v) > 0) % Test if sorted in descending order
v = v(randperm(n, n)); % If not, shuffle the elements randomly
end
B(iRow, :) = v;
end
This is based on the "infinite monkey" theorem: Even a randomly typing monkey will find the solution by accident. In consequence is not guaranteed to finish until your homework is due.
[EDITED] This is not a serious suggestion. If you deliver this as solution of a homework, you might get an extra point for a nerdy kind of humor, perhaps. Ask an internet search engine for better sorting algorithms.
  댓글 수: 6
Pame
Pame 2017년 10월 2일
I like the insertion sort method, and i've got it to work for arrays, but not for matrixes.
Also currently trying to make a function which sorts matrixes in ascending order so that the lowest value element is in (1,1) and the highest value element is in the last row, last column.
Jan
Jan 2017년 10월 2일
But "matrices" are "arrays". Do you mean "vectors"?
Do you have a question? If so, I recommend to open a new thread.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Shifting and Sorting Matrices에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by