WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Cell-Arrey: Arreys nach Größe sortieren

 

Maik aus Magdeburg

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.09.2013, 10:57     Titel: Cell-Arrey: Arreys nach Größe sortieren
  Antworten mit Zitat      
Hallo ,

ich habe ein 1 mal x Cell-Arrey. Jedes Arrey hat x mal 30 spalten. Ich möchte Cell-Arrey jetzt so ordnen das das größte Arrey an Position 1,1 steht. Das nächst große an Position 1,2 usw.
Dafür habe ich folgenden code der soweit auch recht zuverlässig funktioniert. Mit einer Ausnahme. Wenn 2 Arreys gleich groß (gleich viele Zeilen) sind versagt der code. Kommt bei mir zwar recht selten vor, aber das dumme ist es kommt halt vor.
Code:
           Z=zeros(1,LC);
            for wert = 1:LC
                [kk ll]=size(gruppenl{wert});
                Z(wert)=kk;
            end
            GRUPPEN={LC};
            Z1=sort(Z,'descend');  % sortiert absteigend (normalerweise aufsteigend)
            for neu=1:LC
                for grneu=Z(1,neu)
                    ga=find(Z'==grneu);
                    ge=find(Z1'==grneu);
                    GRUPPEN{ge}=gruppenl{ga};
                end
            end


Wie kann ich den Code umschreiben das das immer funktioniert. Oder gibt es vielleicht einen einfacheren code (vielleicht nur eine Zeile) um ein Cell-Arrey zu sortieren. Ich weiß einfach nicht wie ich diesen Fall der zwei gleich großen Arreys abfangen kann.

Ich habe hier um Forum so etwas ähnliches gefunden, scheint aber doch was anderes zu sein. http://www.gomatlab.de/matrixzeilen.....ays-sortieren-t28062.html

Mit freundlichen Grüßen


Maik aus Magdeburg


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 16.09.2013, 11:10     Titel:
  Antworten mit Zitat      
sowas ?
Code:
C={[1,2,3];[3,4,5];[1,2,3;4,5,6];[4,5,6]}
B=cell2mat(cellfun(@size,C,'UniformOutput',false));
[~,ix]=sort(B(:,1),'descend');
C2=C(ix);

_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Maik aus Magdeburg

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.09.2013, 20:50     Titel:
  Antworten mit Zitat      
Ok Danke hat funktioniert.

Jedoch musste ich es etwas umschreiben da mein Matlb mit dem ~ nicht klar kam.
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 16.09.2013, 21:57     Titel:
  Antworten mit Zitat      
Maik aus Magdeburg hat Folgendes geschrieben:

Jedoch musste ich es etwas umschreiben da mein Matlb mit dem ~ nicht klar kam.

bei alten matlab versionen geht das auslassungs zeichen nicht. da muss man dann halt speicher mit ner variablen verschwenden die man nicht brauch.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 16.09.2013, 22:31     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Jedoch musste ich es etwas umschreiben da mein Matlb mit dem ~ nicht klar kam.

Wenn du dich anmelden würdest und die verwendete Version eintragen oder sie auch nur in deinen Beiträgen nennen würdest, könnte man auch berücksichtigen :)

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 17.09.2013, 01:06     Titel:
  Antworten mit Zitat      
Hallo Winkow,

Alternative zu @size:
Code:

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.