Matrix sorting, smallest to biggest
    22 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
So I need to sort a matrix from smallest to biggest going from left to right, with multiple rows. I was told in a previous thread about sort and reshape, which when I integrate into my loop work, but for this assignment I'm doing I can't use built in functions like that. I have to sort the function as part of a loop.
This loop sorts all my matrices but only from top to bottom.
It does stuff like this
1 4 7
2 5 8
3 6 9
I need it to do this
1 2 3
4 5 6
7 8 9
What do I need to add or change to make it go from left to right, like reading a book.
 m=numel(a); 
 for j=1:1:(m-1)
    for i=1:1:(m-1)
        if a(i)>a(i+1)
            temp=a(i);
            a(i)=a(i+1);
            a(i+1)=temp;
        end
    end
end
I can't just straight up use functions like this
 out = reshape(a,size(a,2),[])';
I wish I could but that's not allowed for this.
Here are the 3 matrices I'm working with.
 a=[3 -2 1;4 0 5;1 2.2 -3]
 a=[4 2 1;9 3 5]
 a=[9 8;7 6;5 4]
Anything is appreciated. Thank you.
0 Kommentare
Antworten (2)
  Azzi Abdelmalek
      
      
 am 15 Apr. 2016
        
      Bearbeitet: Azzi Abdelmalek
      
      
 am 15 Apr. 2016
  
      reshape(sort(A(:)),fliplr(size(A)))'
0 Kommentare
  James Tursa
      
      
 am 15 Apr. 2016
        
      Bearbeitet: James Tursa
      
      
 am 15 Apr. 2016
  
      After your loop, add this line:
a = a';
The reason you are getting the result column-ordered instead of row-ordered is because MATLAB matrix memory is stored in column-order and linear indexing (which you are doing in a loop) will access the elements in that order. So a simple transpose at the end will change the result to row-ordered.
2 Kommentare
  James Tursa
      
      
 am 15 Apr. 2016
				Use Azzi's answer with your result. E.g., put this line after your loops:
a = reshape(a,fliplr(size(a)))';
Siehe auch
Kategorien
				Mehr zu Shifting and Sorting Matrices finden Sie in Help Center und File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


