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

Anzeigen von berechneten Werten

 

Einsatzbereit1993
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 16.10.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.10.2018, 12:51     Titel: Anzeigen von berechneten Werten
  Antworten mit Zitat      
Hallo Leute,

ich bin ganz neu auf dem Gebiet Matlab deswegen verzeiht mir die evtl blöde/einfach Frage.

Ich habe mir ein Maxima meiner Funktion ausgerechnet und möchte dieses nun richtig in meiner Figure kennzeichnen. Allerdings weiß ich nicht genau was ich in den Befehl Text() hineinschreiben soll.

Hier mein bisheriger code

Code:
clc, clear, clf, shg
for b=0:0.01:1
   
x=0:0.1:1;
y=f(x);
plot(x,y);

axis([0 1  0 0.7])
title ('Betz`sche Funktion')
xlabel('Restgeschwindigkeit x = v2/v1')
ylabel('Leistungsbeiwert cP')


hold on

a=0



plot([b b], [0 1], 'g-')
   
   
xmax=fminbnd('-f(x)',a,b)

plot(xmax,f(xmax),'ob','Markersize',10)
    hold off
    drawnow
   
text(xmax,num2str(xmax))
end


hold off


Mit freundlichen Grüßen
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: 16.10.2018, 20:49     Titel:
  Antworten mit Zitat      
Hallo,

du musst x- und y-Koordinate vor dem Text angeben. Die y-Koordinate kommt als zweites Argument von fminbnd zurück.

Code:
[xmax, ymax]=fminbnd(@(x) -f(x),a,b)
% und dann
text(xmax, ymax, num2str(xmax))


Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Einsatzbereit1993
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 16.10.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.10.2018, 21:53     Titel:
  Antworten mit Zitat      
Also wenn ich das jetzt so mache wie du beschrieben hast passiert garnichts.
Wenn ich deinen Code
Code:
[xmax, ymax]=fminbnd(@(x) -f(x),a,b)

zu diesem hier
Code:
xmax,ymax=fminbnd(@(x) -f(x),a,b)

verändere, zeigt er mir zumindest den x-Wert an. Allerdings fehlt dann noch der dazugehörige y-Wert.

Optimal wäre wenn eine gestrichelte Linie auf diesem Level gezeichnet wird und die Koordinaten als Text dazugeschrieben werden

Lg
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: 16.10.2018, 22:24     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Also wenn ich das jetzt so mache wie du beschrieben hast passiert garnichts.

Dass bei der Ausführung dieser Zeile gar nichts passiert, kann ich mir nicht vorstellen.

Zitat:
zeigt er mir zumindest den x-Wert an. Allerdings fehlt dann noch der dazugehörige y-Wert.

Kein Wunder, denn es wird nur das vorher vorhandene xmax angezeigt und dann das erste Rückgabeargument (eigentlich ein x-Wert) in ymax geschrieben.

Zitat:
Optimal wäre wenn eine gestrichelte Linie auf diesem Level gezeichnet wird

Etwas in der Art hast du ja schon gemacht: plot([b b], [0 1], 'g-') -- statt -, und schon hast du eine gestrichelte Linie.

Zitat:
und die Koordinaten als Text dazugeschrieben werden

Siehe erste Antwort. Wenn du mehr als nur als xmax an der Stelle stehen haben willst, musst du das entsprechend zusammensetzen.

Mangels f kann man deinen Code leider nicht ausführen und testen.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Einsatzbereit1993
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 16.10.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.10.2018, 22:30     Titel:
  Antworten mit Zitat      
Ich weiß nicht wieso aber bei dem von dir beschriebenen Code ist tatsächlich nichts passiert bzw das Programm genauso durchgelaufen wie vorher.

Die Funktion ist wie folgt: y=0.5.*(1+x).*(1-x.^2)
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: 16.10.2018, 22:37     Titel:
  Antworten mit Zitat      
Hallo,

wenn ich das so laufen lasse, passiert so einiges:

Code:
clc, clear, clf, shg
f = @(x) 0.5.*(1+x).*(1-x.^2) ;
for b=0:0.01:1
   
    x=0:0.1:1;
    y=f(x);
    plot(x,y);
   
    axis([0 1  0 0.7])
    title ('Betz`sche Funktion')
    xlabel('Restgeschwindigkeit x = v2/v1')
    ylabel('Leistungsbeiwert cP')
   
   
    hold on
   
    a=0
   
   
   
    plot([b b], [0 1], 'g-')
   
   
    [xmax, ymax]=fminbnd(@(x) -f(x),a,b)
   
    plot(xmax,f(xmax),'ob','Markersize',10)
    hold off
    drawnow
   
    text(xmax, -ymax, num2str(xmax))
end


hold off


Mir ist nicht ganz klar, was nun animiert werden soll und was nicht. Ggf. musst du das hold off an eine andere Stelle setzen.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Einsatzbereit1993
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 16.10.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.10.2018, 22:41     Titel:
  Antworten mit Zitat      
Bei mir zeigt er im plot nur die Funktion und den x Wert an und nicht den y Wert.
Irgendwas mache ich Falsch Sad

Lg
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: 16.10.2018, 23:06     Titel:
  Antworten mit Zitat      
Hallo,

das dritte Argument von text ist der anzuzeigende Text. Momentan steht da num2str(xmax) , also nichts von ymax - dann wird halt auch kein ymax angezeigt.

Wie gesagt:
Zitat:
Wenn du mehr als nur als xmax an der Stelle stehen haben willst, musst du das entsprechend zusammensetzen.

z.B.
Code:
['(', num2str(xmax), ',' , num2str(-ymax), ')']


Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Einsatzbereit1993
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 16.10.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.10.2018, 14:58     Titel:
  Antworten mit Zitat      
Wie du dem Bild entnehmen kannst passiert mit dem Code nichts bzw die Werte werden nicht angezeigt. Habe es jetzt anders gelöst - wie du die zwei Zeilen darunter als Kommentar sehen kannst.
Trotzdem danke

Bildschirmfoto 2018-10-17 um 14.56.39.png
 Beschreibung:

Download
 Dateiname:  Bildschirmfoto 2018-10-17 um 14.56.39.png
 Dateigröße:  3.3 MB
 Heruntergeladen:  278 mal
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: 17.10.2018, 17:35     Titel:
  Antworten mit Zitat      
Hallo,

du musst den Code bitte richtig übernehmen.
Das - vor ymax ist wichtig, weil du ja -f minimierst. Ansonsten wird der Text in einen nicht sichtbaren Bereich geschrieben. Alternativ:
Code:
text(xmax, f(xmax), ...)


Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
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.