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 über Input-Befehl ins Skript aufnehmen

 

MICHAMICHA
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 03.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.04.2012, 14:28     Titel: Funktion über Input-Befehl ins Skript aufnehmen
  Antworten mit Zitat      
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 Razz
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
Private Nachricht senden Benutzer-Profile anzeigen


simpeldimpel
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 25.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.04.2012, 14:47     Titel:
  Antworten mit Zitat      
Wenn ich das hier so lese, ist dass das selbe Problem wie ich habe. Leider bis jetzt auch noch keine Lösung gefunden....
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 25.04.2012, 18:42     Titel:
  Antworten mit Zitat      
Zitat:
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

Hast das gemeint?
Private Nachricht senden Benutzer-Profile anzeigen
 
simpeldimpel
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 25.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.04.2012, 07:31     Titel:
  Antworten mit Zitat      
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:

Code:


wird jetzt jedoch:

Code:
funktionsname = input(prompt);
funktionsname;


ü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?

Gruß Simpeldimpel
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 26.04.2012, 09:31     Titel:
  Antworten mit Zitat      
Hallo

es gibt eine Funktion STR2FUNC, welche aus STRING eine Funktionhandle erzeugt.
Bespiel:
Code:

fnc = 'sum'
fnc = str2func(fnc)
fnc(1:5)
 
Private Nachricht senden Benutzer-Profile anzeigen
 
MICHAMICHA
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 03.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.04.2012, 10:29     Titel:
  Antworten mit Zitat      
Hi,

vielen Dank an denny. Das ist genau das was ich brauchte!

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