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

Sortieren und verwerfen

 

Alex20

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.08.2010, 15:51     Titel: Sortieren und verwerfen
  Antworten mit Zitat      
Hallo!

Gegeben ist ein Vektor, dessen Inhalt sortiert werden soll.
Dabei sollen Zahlen die mehrmals vorkommen vernachlässigt werden.

beispiel:
Code:

V=[9 7 7 6 5 3 3 3 2 1 ]

b=sort(V)                     %irgendwie sowas

b= 1 2 3 5 6 7 9
 

Danke!!


Edit by denny: Bitte die Code-Formatierung verwenden. Danke!


yankemen
Forum-Century

Forum-Century


Beiträge: 104
Anmeldedatum: 14.04.10
Wohnort: ---
Version: 32: 2008a & 2010a
     Beitrag Verfasst am: 23.08.2010, 15:56     Titel:
  Antworten mit Zitat      
Moin Alex20,

Du kannst das mit
Code:
erreichen. Würde ich vor das sort() setzen, dann muss weniger sortiert werden. Andererseits könnte es andersrum schneller sein, je nachdem, wie unique() arbeitet.

HTH,
yankemen
_________________

Code:
% Kommentare brauchen ein Leerzeichen nach dem %
Gibt es ein Ist und ein Wunsch-Soll? Gibt es Beispiele zum Durchprobieren? Wenn selbstgeschriebene Funktionen aufgerufen werden: können sie bitte angehangen werden? Gab es Fehlermeldungen?
Stimmen die Werte, wenn der Debugger mit Haltepunkten etc. eingesetzt wird?
Danke Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Alex20

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.08.2010, 17:21     Titel:
  Antworten mit Zitat      
Danke, das passt schon mal.

Jetzt hat sich mein Code bischen erweitert. Folgendes:

Nun habe ich eine Matrix
Code:

Matrix=[4 12 6; 3 5 9; 8 45 3; 4 12 6; 7 55 1]
 

Es soll folgendermassen sortiert werden:
Code:

h= sort(Matrix(:,1))         % so stell ich mir das in etwa vor

h=[3 5 9; 4 12 6; 7 55 1; 8 45 3];
 

Die Reihe "4 12 6" wurde einmal ausgelassen.

Danke...

Edit by denny: Bitte die Code-Formatierung verwenden. Danke!
 
yankemen
Forum-Century

Forum-Century


Beiträge: 104
Anmeldedatum: 14.04.10
Wohnort: ---
Version: 32: 2008a & 2010a
     Beitrag Verfasst am: 23.08.2010, 17:41     Titel:
  Antworten mit Zitat      
Moin Alex20,

wo ist jetzt das Problem?
Verstehst Du den Hilfetext zu sort() nicht?

Ciao,
yankemen
_________________

Code:
% Kommentare brauchen ein Leerzeichen nach dem %
Gibt es ein Ist und ein Wunsch-Soll? Gibt es Beispiele zum Durchprobieren? Wenn selbstgeschriebene Funktionen aufgerufen werden: können sie bitte angehangen werden? Gab es Fehlermeldungen?
Stimmen die Werte, wenn der Debugger mit Haltepunkten etc. eingesetzt wird?
Danke Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Vito
Forum-Guru

Forum-Guru


Beiträge: 315
Anmeldedatum: 02.11.09
Wohnort: Stuttgart
Version: ---
     Beitrag Verfasst am: 23.08.2010, 17:48     Titel:
  Antworten mit Zitat      
Hi,

das geht so:
Code:

Result = sort(Matrix,2)
 

Gruß,
Vito
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.08.2010, 11:55     Titel:
  Antworten mit Zitat      
sort ist zwar verstanden, aber hab ein komplexeres problem...

Gesucht sind die 3 kleinsten Werte aus einer sortierten spalte einer matrix!

bsp:

Code:

M=[3 1; 5 8; 4 9; 3 1; 6 7; 3 1; 9 9; 3 1]

N=sort(M)
N= 3 1
     3 1
     3 1
     3 1
     4 9
     5 8
     6 7
     9 9
 

1. in meinem Ergebnis der kleinsten Zahlen soll eine Zeile nur einmal vorkommen, dh p=

2. die zeilen in p sollen als positionen von M angeben werden, dh pos=

p= 3 1 pos= 1/4/6/8 (eine position würde reichen)
4 9 3
5 8 2

thx

Edit by denny: Bitte die Code-Formatierung verwenden. Danke!
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.08.2010, 11:57     Titel:
  Antworten mit Zitat      
Anonymous hat Folgendes geschrieben:

p= 3 1 pos= 1/4/6/8 (eine position würde reichen)
4 9 3
5 8 2

thx

sorry das soll so aussehen:
p= 3 1
4 9
5 8

pos= 1/4/6/8 (eine position würde reichen)
3
2
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 24.08.2010, 12:23     Titel:
  Antworten mit Zitat      
Hallo

verwende weiterhin UNIQUE, einfach mit Option rows aufrufen:

Code:

N = unique(M, 'rows')
 


PS: UNIQUE wurde hier schon mal erwähnt. Ab und zu in der Doku zu Befehlen reinschauen, hättest schon lägst die Antwort gehabt.
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 24.08.2010, 12:35     Titel:
  Antworten mit Zitat      
yankemen hat Folgendes geschrieben:
Moin Alex20,

Du kannst das mit
Code:
erreichen. Würde ich vor das sort() setzen, dann muss weniger sortiert werden. Andererseits könnte es andersrum schneller sein, je nachdem, wie unique() arbeitet.

HTH,
yankemen


UNIQUE sortiert die Werte bereits damit ist SORT nach UNIQUE nicht nötig.
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.