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

alle lokalen Extrema finden

 

pixfan
Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 11.10.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.05.2009, 14:55     Titel: alle lokalen Extrema finden
  Antworten mit Zitat      
Hallo,

gibt es eine schnelle Lösung mit der man in MATLAB alle lokalen Maxima und Minima einer Matrix lokalisieren kann?

Es gäbe die Möglichkeit die Matrix aufzuteilen und in jedem Teil die Extrema mittels max und min zu suchen. Allerdings ist das zu aufwändig/langsam. Zudem suche ich auch die Koordinaten zu den Werten.

Eine Brute Force Lösung wäre, das Maximum zu suchen, auszulesen, Null zu setzen und dann die Suche von neuem zu starten, aber das ist auch extrem langsam.

Gibt es eine schnelle Lösung?

Vielen Dank!

Dieter
Private Nachricht senden Benutzer-Profile anzeigen


Schrank
Forum-Century

Forum-Century


Beiträge: 203
Anmeldedatum: 10.07.08
Wohnort: Berlin
Version: ---
     Beitrag Verfasst am: 27.05.2009, 16:37     Titel:
  Antworten mit Zitat      
Hallo,

wenn Dir die Signal Processing Toolbox™ zur Verfügung steht, kannst du
Code:
verwenden, ansonsten musst du dir eine von den vielen freien implementationen im Netz suchen.
Das gehört zu den Standard-Problemen

Gruß
Schrank
Private Nachricht senden Benutzer-Profile anzeigen
 
pixfan
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 11.10.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.06.2009, 21:44     Titel:
  Antworten mit Zitat      
Die Signal Processing Toolbox™ ist leider nicht vorhanden.

Wie könnte man das programmieren?
Private Nachricht senden Benutzer-Profile anzeigen
 
Alpha23
Forum-Anfänger

Forum-Anfänger


Beiträge: 35
Anmeldedatum: 11.09.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.06.2009, 14:07     Titel:
  Antworten mit Zitat      
Ich verstehe die Aufgabenstellung nicht wirklich...
Wenn ich z.B. die Matrix
Code:
A=
     1  10   5   7   9
    15   8  11   6  24
     7   5   4  10  10
     9  18   0   0   8

habe, wo sind dann da die lokalen Extrema?
Oder bräuchtest du einfach nur eine Liste mit den Einträgen in absteigender Reihenfolge? Sowas wie
Code:
G=
    2 5 24
    4 2 18
    2 1 15
    2 3 11
    3 4 10
    3 5 10
    1 5  9
    4 1  9
    2 2  8
    4 5  8
    1 4  7
    3 1  7
    2 4  6
    1 3  5
    3 2  5
    3 3  4
    1 1  1
    4 3  0
    4 4  0

Das wäre kinderleicht mit
Code:
[a,b,c]=find(A);
G=-sortrows(-[a,b,c],3);

umzusetzen... Für aufsteigende Sortierung dementsprechend oben die beiden Minuszeichen entfernen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 04.06.2009, 14:29     Titel:
  Antworten mit Zitat      
Hallo,

ich verstehe die Frage nach lokalen Maxima so: Lokale Maxima sind alle Werte, deren acht umgebende Einträge kleiner sind als sie selbst. Im Beispiel von Alpha23 sind die lokalen Maxima

Code:
[0 0 0 0 0
 1 0 1 0 1
 0 0 0 0 0
 0 1 0 0 0]


Das sind hier auch die höchsten vier Werte, aber das muss nicht so sein. Beispiel:
Code:
A = [3 3 3 3 3
     3 0 0 0 3
     3 0 1 0 3
     3 0 0 0 3
     3 3 3 3 3];


Das lokale Maximum liegt in der Mitte. 1 ist aber nicht insgesamt der höchste Wert.

Für diese Aufgabenstellung (inklusive Minima) gibt es die Funktionen MinimaMaxima3D und extrema2 im File Exchange.

Herzliche Grüße
Bijick
_________________

>> why
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
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.