Verfasst am: 25.04.2012, 14:28
Titel: Funktion über Input-Befehl ins Skript aufnehmen
Hi,
leider bin ich bisher nicht fündig geworden, deshalb stelle ich meine Frage hier:
Wie kann man eine beliebige vorher definierte Funktion in ein Skript aufnehmen?
Ich habe nämlich ein Skript geschrieben welches berechnet wie gut eine Funktion die gegebenen Messdaten annähert und dann einen Plot mit Messdaten und Modelldaten erstellt. bzw soll es das später mal machen wenn es klappt
Hier mal der Auszug aus dem code:
Code:
fun=input('Eingabe einer Funktion: \n ', 's');
B0=...
xdata=...
ydata=... [x,resnorm,~,exitflag,output] = lsqcurvefit(fun,B0,xdata,ydata);
ya = fun(x,xdata);
plot(KW,ya,'k')
im lsqcurvefit ist das über den input-befehl kein thema.
allerdings ist die gleichung für ya problematisch, da in dem fall nicht die funktion ausgeführt wird, sondern der Fehler "Subscript indices must either be real positive integers or logicals." auftritt.
ich hoffe es ist verständlich was gemeint ist und bitte um hilfe.
danke im voraus!
grüße
micha
leider bin ich bisher nicht fündig geworden, deshalb stelle ich meine Frage hier:
Wie kann man eine beliebige vorher definierte Funktion in ein Skript aufnehmen?
Die Funktion muss in SUCHPFAD von Matlab liegen, damit sie von Matlab gefunden werden kann.
Stichwort ADDPATH
Nein, das ist nicht die Frage. Wenn ich es richtig interpretiere. Die Funktion liegt im richtigen Pfad. Wenn ich aber über die Input-Eingabe eine Funktionsnamen eingibt der gestartet werden soll liegt der Funktionsname in der Rückgabevariable als Char vor und wird nicht als Funktionsname erkannt. Ergo kann die Funktion nicht gestartet werden. Die Frage ist jetzt ob man dieses Problem irgendwie umgehen kann, damit aus dem Char bzw. Str die Funktion gestartet werden kann.
Ein kleines Beispiel:
Es soll eine Matrix erstellt werden. Der Befehl lautet:
über die input Funktion der Befehl ones(2,2) eingelesen wird dieser nicht gestartet, da er als Str vorliegt. Gibt es jetzt eine Möglichkeit den Befehl als solches zu erkennen?
vielen Dank an denny. Das ist genau das was ich brauchte!
Grüße
Einstellungen und Berechtigungen
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
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.