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

Funktion Input verarbeiten

 

soerenoez
Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 23.12.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.12.2014, 16:32     Titel: Funktion Input verarbeiten
  Antworten mit Zitat      
Guten Tag,

ich bin neu hier und hab auch mit dem MatLab Programmieren erst vor kurzem angefangen. Ich habe folgendes Problem:

Ich möchte in meinem Editor ein Programm schreiben, das den Benutzer eine Funktion eingeben lassen soll. Diese Funktion soll dann verarbeitet werden, bspw. Integrale berechnet werden usw.

Bisher habe ich folgendes versucht:
Code:

fun=@(t) input('Bitte Funktion eingeben:\n');
 

worauf dann Befehle wie
Code:

oder
Code:


folgen, die ich dann ausgeben möchte. Nun gibt er mir aber Fehler die lauten
Error using mupadmex
Error in MuPAD command: Invalid input. ')' is expected. [line 1, col 24]

Error in sym/subs>mupadsubs (line 139)
G = mupadmex('symob::fullsubs',F.s,X2,Y2);

Error in sym/subs (line 124)
G = mupadsubs(F,X,Y);

und noch

Error in Motion (line 43) %Motion ist der Name des Programms das ich schreibe
while subs(fun,t,dTk)~=0;

Das ganze Programm ist sehr lang und relativ komplex, falls es aber nötig ist kann ich es gerne reinkopieren.

Oder muss ich noch irgendwelche Dinge ankündigen o.Ä.? Habe nichts weiter für die Integrale und den Input angegeben.

Vielen Dank im Voraus für die Hilfe!

Sören
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 23.12.2014, 22:35     Titel:
  Antworten mit Zitat      
Hallo,

stattdessen kannst du folgendes verwenden:
Code:
str = input('Bitte Funktion eingeben:\n');
fun=str2func(['@(t) ', str]);
 


Damit das klappt, muss die Funktion aber wirklich in Abhängigkeit von t eingegeben werden.

Einfacher wäre wohl, wenn man von außen ein Function Handle als Eingabeargument annimmt.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 23.12.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.12.2014, 12:38     Titel:
  Antworten mit Zitat      
Danke für die Antwort! Smile Nur leider geht es immer noch nicht.

Meine Frage ist eigentlich ganz leicht und inzwischen auch etwas anders:

Ich habe eine Funktion im Editor die ich selber in den Editor schreiben möchte. Danach möchte ich mit dieser Funktion, die ich selber in den Editor eingetippt habe, die Befehle 'subs' und 'integral' ausführen. Werte, wie die Grenzen des Integrals, sind Werte die ich per input eingeben lasse.

Bspw.:
p1=integral(fun,dT,dT+dT); %dT habe ich vorher mit 'dT=input('delta time'); eingeben lassen.

was muss ich nun bei der Funktion beachten? Kann mir bitte jemand die paar Befehle sagen? ich bekomme ganz abgefahrene Fehlermeldungen die ich überhaupt nicht verstehe bisher. Und es muss doch eine einfache Lösung für dieses häufige Problem geben. Ich find online blöderweise auch nichts. Oder ich bin inzwischen einfach zu müde...
Über Hilfe wäre ich sehr sehr dankbar Smile

Sören
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 27.12.2014, 18:29     Titel:
  Antworten mit Zitat      
Hallo,

subs ist symbolisch, integral ist numerisch. Das passt also schon mal schlecht zusammen.

Wenn du fun wie von mir angegeben oder anderweitig als Function Handle definierst, sollte es klappen.
Bitte immer möglichst ein komplettes Beispiel angeben und vor allem auch welche Fehlermeldungen du bekommst (hier reinkopieren).

Grüße,
Harald
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.