Sorting 2D matrix

10 次查看(过去 30 天)
Ashraf Hisham
Ashraf Hisham 2018-5-3
i wanna sort a 2D Matrix like
a = [1 3 0;5 2 8;4 7 10]
without using any existing function in MATLAB like sort,.... i need an algorithm to sort element by element can any one help ? to be
a = [0 1 2;3 4 5;7 8 10]
  4 个评论
per isakson
per isakson 2018-5-4
Homework?
See also: Bubble sort
Jan
Jan 2018-5-4
Sorting a matrix elementwise is a strange job. If you do not consider the rows or columns, why is the input and output a matrix and not a vector? Please confirm that this does exactly what you want with Matlab commands:
a = [1 3 0;5 2 8;4 7 10]
b = reshape(sort(a(:)), size(a))
"No existing Matlab functions" cannot work. Even "=" calls subasgn and ">" calls the gt function. Without built-in functions, there is almost nothing, what can be done in Matlab at all.

请先登录,再进行评论。

回答(1 个)

Yuvaraj Venkataswamy
Use this commands where a is input matrix and S_a is the your required answer.
a = [1 3 0;5 2 8;4 7 10]
b=sort(a(:));
S_a=vec2mat(b,3);
  1 个评论
Ameer Hamza
Ameer Hamza 2018-5-4
编辑:Ameer Hamza 2018-5-4
The question specifically mentioned not to use built-in sort() function.

请先登录,再进行评论。

类别

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