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

Mehrere minimas eines Vektors finden

 

Andy386
Forum-Guru

Forum-Guru


Beiträge: 485
Anmeldedatum: 24.06.09
Wohnort: ---
Version: 7.1/8
     Beitrag Verfasst am: 20.07.2009, 22:36     Titel: Mehrere minimas eines Vektors finden
  Antworten mit Zitat      
Bislang hab ich die Sache mit vielen Minimas finden so gelöst:
Code:

idx1=find(vekt==min(vekt));
neu_vekt=vekt;
neu_vekt(idx1)=[];
idx2=find(vekt==min(neu_vekt));

Aber bei grossen Vektoren verlangsamt sich das Ganze durch die Dynamischen Arrays (neu_vekt(idx1)=[];) enorm. Okay, die könnte ich auch auf max(vekt) setzen, ich wollte aber mal fragen, ob es einen Befehl gibt, der gleich eine bestimmte Anzahl aller niedrigeren Werte, die vorkommen, ausgibt.
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 20.07.2009, 23:14     Titel:
  Antworten mit Zitat      
Vorschlag: sort und sich die unteren Prozent ansehen, mitsamt der zugehörigen Indizes.
Private Nachricht senden Benutzer-Profile anzeigen
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 21.07.2009, 08:54     Titel:
  Antworten mit Zitat      
Ergänzung zu Harald: Verwende UNIQUE und dort die unteren Werte. Vorteil: Mehrfache Werte werden nur einmal aufgelistet und gleich der Größe nach sortiert.

Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
Andy386
Themenstarter

Forum-Guru

Forum-Guru


Beiträge: 485
Anmeldedatum: 24.06.09
Wohnort: ---
Version: 7.1/8
     Beitrag Verfasst am: 21.07.2009, 19:32     Titel:
  Antworten mit Zitat      
Danke !
gibt es noch eine schnelle Möglichkeit, die Indizes der Werte des Sortierten im Orginal zu finden ?
Code:
neu_vekt=sort(vekt);
idxsor=find(neu_vekt(1:5)==vekt);

geht nicht, es scheitert am eq. Logisch mit & verknüpfen geht auch nicht.
Muss man ne Schleife nutzen ?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 21.07.2009, 19:38     Titel:
  Antworten mit Zitat      
Das zweite Rückgabeargument von SORT?

Code:
[vekt, index] =sort(vekt);
vekt(1:5) % die 5 kleinsten Werte
index(1:5) % ... und wo sie auftauchen


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Andy386
Themenstarter

Forum-Guru

Forum-Guru


Beiträge: 485
Anmeldedatum: 24.06.09
Wohnort: ---
Version: 7.1/8
     Beitrag Verfasst am: 21.07.2009, 19:53     Titel:
  Antworten mit Zitat      
Embarassed

[edit]
ich hab noch ein bissl rumgespielt,
Code:
find( vekt<(min(vekt)+1000) )

passt mir noch besser (variable Länge, dafür schneller)
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 - 2024 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.