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

Erstes Maximum finden aus einem Array

 

Kexo

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.11.2009, 13:01     Titel: Erstes Maximum finden aus einem Array
  Antworten mit Zitat      
Hallo Zusammen,

Erst einmal ein großen Kompliment an das Forum hier in dem ich shcon öfters Antworten auf meine Fragen gefunden hab.

Heute muss ich doch einen Post aufmachen da ich leider nicht weiterkomme mit einem Porblem.

Ich lese mithilfe eines "to Workspace" Blocks ein Array aus suche mit der Funktion max() nach dem Maximum. Da es aber mehrere Maximas gibt liefert mir die Funktion natürlich nur das größe. Ich bin allerdings nur am 1. auftretendem Maximum interessiert.

Code:

hs_var=0:0.05:2;
while n<=length(hs_var)
    hs=hs_var(n);
    sim('test',[0 2]);
    [energie(n,m),I]=max(W);
    n=n+1;
end

Leider hab ich bisher keine Idee wie ich das Lösen könnte. Ich freue mich auf Vorschläge und Ansätze,  

Mit freundlichen Grüßen,
Björn


Kexo

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.11.2009, 15:04     Titel:
  Antworten mit Zitat      
Hi Zusammen,

Hab glaub ich eine Lösung gefunden die mir das erste Maximum zurück gibt.

Code:

function [Wert,Index] = firstmax(A)
    for n=1:length(A)
        if A(n)<=A(n+1)
            n=n+1;
        else
            Wert=A(n);
            Index=n;
            break
        end
    end
 


Falls jemand Verbesserungsvorschläge hat kann er die gern machen bin noch nicht lange dabei zu Programmieren hoffe der Code ist nicht allzu schlimm Embarassed

Grüße Björn[/code]
 
Maschi87
Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 22.12.11
Wohnort: Im Wald
Version: ---
     Beitrag Verfasst am: 24.08.2016, 11:05     Titel:
  Antworten mit Zitat      
Der Beitrag ist zwar schon etwas älter, aber als Anmerkung würde mir einfalllen, dass Du einen Fehler bekommst, wenn das Maximum der letzte Wert ist. So sollte es immer funktionieren:

Code:


function [Wert,Index] = firstmax(A)
for n=1:length(A)
    if n<length(A)
        if A(n)<=A(n+1)
        else
            Wert=A(n);
            Index=n;
            break
        end
    else
        if A(n)==max(A)
            Wert=A(n);
            Index=n;
            break
        else
        end
    end
end

 


Ich habe auch das n=n+1 heraus genommen, wofür war das gedacht?
Private Nachricht senden Benutzer-Profile anzeigen
 
Maschi87
Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 22.12.11
Wohnort: Im Wald
Version: ---
     Beitrag Verfasst am: 24.08.2016, 13:30     Titel:
  Antworten mit Zitat      
und natürlich muss man überlegen ob man

A(n)<=(A(n+1)

oder

A(n)<(A(n+1)

haben möchte. Wenn mehrere gleiche Einträge folgen, ist das Ergebnis unterschiedlich (einmal der letzte und einmal der letzte Index in der Reihe)
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.