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 Funktionen in einem Fenster

 

matic
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 15.06.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.06.2017, 19:40     Titel: Mehrere Funktionen in einem Fenster
  Antworten mit Zitat      
Hi,

ich bin ein Anfänger in Matlab und lerne gerade etwas über GUIs und komme jetzt seit mehreren Stunden nicht weiter.

Zum Problem:
Ich will per GUI eine Funktion eingeben, platten lassen und im gleichen Fenster die Ableitung platten lassen.

Mein Vorgehen:
GUI erstellt, mit Eingabemöglichkeit und Axes.

Wird ein Button betätigt, wird folgendes ausgeführt:

Code:
syms y;
y = get(handles.eingabe, 'String');
ezplot(y);
hold on;
grid on;
ezplot(diff(y,1));
 


Es wird richtigerweise die Funktion geplottet, nicht aber die Ableitung. Weiß evtl. jemand wo der Fehler liegt?

Danke vorab und Grüße,
matic
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 15.06.2017, 21:03     Titel:
  Antworten mit Zitat      
Hallo,

was wird denn als Funktion eingegeben? Wenn es etwas wie x^2 ist, bekommst du wohl eine Fehlermeldung. Diese bitte immer posten.

Das syms wird ja durch den get-Befehl überschrieben. y ist also ein String, und den kann man nicht in dem Sinn ableiten. Abhilfe:
Code:
y = 'x^2';
ezplot(y);
hold on;
grid on;
ezplot(diff(sym(y),1));


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

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 15.06.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.06.2017, 06:45     Titel:
  Antworten mit Zitat      
Hallo Harald,

und danke für deine Antwort!

Dein Lösungsvorschlag hat geholfen und es kam tatsächlich auch eine Fehlermeldung.

Ja, ich habe x^2 und andere Polynome versucht zu plotten.

Damit ich aber verstehe was passiert ist durch deinen Vorschlag;

y hast du als String deklariert und z.B. eben x^2 zugewiesen. Das passiert bei mir durch den get-Befehl.
ezplot, hold on und grid on tun das was die tun

durch ezplot(diff(sym(y),1));

wird y zu einer symbolischen Variable erklärt und der Funktion diff übergeben. Dadurch weiß diff, das y für den "String" steht, versteht ihn als Funktion und leitet ihn ab. Kommt das so hin?

Was aber, wenn y von zwei Variablen, z.B. x und t abhängen soll?

Danke und beste Grüße,
matic
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 17.06.2017, 19:47     Titel:
  Antworten mit Zitat      
Hallo,

klingt soweit gut.

Zitat:
Was aber, wenn y von zwei Variablen, z.B. x und t abhängen soll?

Dann solltest du z.B. bei diff angeben, nach welcher der Variablen abgeleitet werden soll. Ansonsten... kannst du deine Frage etwas konkretisieren?

Übrigens: statt ezplot sollte man laut Doku fplot verwenden.

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

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 15.06.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.06.2017, 19:28     Titel:
  Antworten mit Zitat      
Hallo,

danke, das war auch die Frage!

Mit fplot habe ich versucht es auch hinzubekommen, hatte allerdings nur eingeschränkt Erfolg, da man der diff-Funktion keinen function handle übergeben darf. Aber so passt das alles bisher.

Danke für deine Hilfe und beste Grüße,
matic
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.