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

Maximale Wert und Postion einer m X n Matrix

 

Senzenberger
Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 07.06.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.06.2013, 22:23     Titel: Maximale Wert und Postion einer m X n Matrix
  Antworten mit Zitat      
Hallo,

ich habe mit den folgenden Code mein Ziel erreicht, aber ich soll das Problem auch mit dem Befehl max lösen. Mir ist klar das ich mit max(A(Smile) den Maximalwert der Matrix erhalte aber der Position habe ich keinen Plan.

Code:

[function [y,pos] = maxarrayPositionUE(A)
 [z s]= size(A);
 y=A(1,1);
 pos=[0 0];
 for j=1:z
     for k=1:s
         if (A(j,k)>y)
             y=A(j,k);
             pos=[j,k];
         end
     end
end]
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: 07.06.2013, 22:26     Titel:
  Antworten mit Zitat      
Hallo,

dann schau dir mal das zweite Rückgabeargument von max an, sowie die Funktion sub2ind.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 07.06.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.06.2013, 22:43     Titel:
  Antworten mit Zitat      
Ich habe mal das gefunden. Sind die Rückgabeparameter die Werte in der eckigen Klammer?

Code:
[Wert  Position]=max(A(:))

Wert =

     9


Position =

     3

>> sub2ind(size(A),Position)

ans =

     3
 



Ist nicht ganz richtig Weil A=[1 2 3;4 5 6;9 8 7]
mfg hannes
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



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

Das ist richtig, das sind halt lineare Indizien, damit kann unter Matlab auch auf Elemente der Matrix zugreifen. Wenn du Matrix A(:) zu einen Vektor extrahierst, dann siehst du, dass 9 in Vektor auf 3 Platz ist.
Deswegen kann man auch mit den Lineare Indizien auf Matrix Elemente zugreifen, versuch doch in Matlab A(3), einzugeben und du bekommst 9 zurück.

Aber wenn du Zeilen-/Spalten-Indizien brauchst , dann brauchst IND2SUB


Code:

A=[1 2 3;4 5 6;9 8 7]
[Wert,  Position]=max(A(:))
[row,col]=ind2sub(size(A),Position)
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Senzenberger
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 07.06.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.06.2013, 23:33     Titel:
  Antworten mit Zitat      
Hallo, mit der Richtigen Abfrage hat es geklappt! Danke

Code:
[wert,position]=max(B(:))

wert =

     9


position =

     3

>> [z,s]= ind2sub(size(B),position)

z =

     3


s =

     1

>>
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.