Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   
Bücher:

Fachkräfte:
Softwareentwickler (m/w) für automatische Codegenerierung
Softwareentwicklung mit MATLAB/Simulink und dSPACE TargetLink im Bereich Fahrwerkregelsysteme
Elektronische Fahrwerksysteme GmbH - Ingolstadt

Entwicklungsingenieur (m/w) für modellbasierte Softwareentwicklung
Modellbasierte Softwareentwicklung mit MATLAB/Simulink und dSPACE TargetLink
Elektronische Fahrwerksysteme GmbH - Ingolstadt

Elektromobilität: E-Drive Entwicklungsingenieur HV-Energiemanagement und Betriebsstrategie (m/w)
Entwicklung von Teilfunktionen für Energiebordnetze
MBtech Group GmbH & Co. KGaA - Sindelfingen

Softwareentwickler (w/m) Bypassing- und Steuergeräte-Schnittstellen
Entwicklung von Echtzeit-Software für verschiedene automotive Microcontroller
dSPACE GmbH - Paderborn

Application Engineer (m/w)
Unterstützung des Vertriebs bei der Erstellung von Angeboten und Präsentation beim Kunden
Control Techniques GmbH - Hennef

weitere Angebote

Partner:


Vermarktungspartner


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: 17.538
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2014a
     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: 17.538
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2014a
     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
.


goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de goPCB.de


 Impressum  | Nutzungsbedingungen  | Datenschutz  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2017 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

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.