Matroids Matheplanet Forum Index
Moderiert von mire2
Mathematische Software & Apps » Matlab » User Input bei einer Function
Autor
Universität/Hochschule J User Input bei einer Function
Neodym342
Ehemals Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 31.10.2015
Mitteilungen: 145
  Themenstart: 2017-05-16

Hallo, ich habe ein störendes Problem bezüglich Userinputs. Ich soll ein Programm schreiben, dass NST mittels Bisektion findet. Kein Problem soweit. Jedoch möchte ich, dass der User die Funktion selber eingeben kann, von der die Nullstelle berechnet werden soll. \sourceon Matlab function [x0]= bisection2(a,b) f1=myf(a); f2=myf(b); epsilon= 0.1; %Genauigkeit for k=0:100 if abs(a-b)


   Profil
majoka
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 25.02.2014
Mitteilungen: 814
  Beitrag No.1, eingetragen 2017-05-17

So scheint es zu funktionieren. Die Verwendung des Befehls "eval" ist aber unschön. Vielleicht findet noch jemand eine elegantere Lösung... \sourceon Matlab function [x0]= bisection2(a,b) u = myfunc; eval(['myf=@(x) ',u,';']); f1=myf(a); f2=myf(b); epsilon= 0.001; %Genauigkeit for k=0:100 if abs(a-b)


   Profil
Neodym342
Ehemals Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 31.10.2015
Mitteilungen: 145
  Beitrag No.2, vom Themenstarter, eingetragen 2017-05-17

Hi, Danke auf jeden Fall! So funktioniert es. Jedoch verstehe ich nicht ganz was \sourceon Matlab eval(['myf=@(x) ',u,';']); \sourceoff genau macht. Die Doku gibt leider auch nicht so viel her. Wäre nett, wenn du das nochmal kurz erläutern könntest. EDIT: Vor allem den Syntax von eval... Grüße


   Profil
majoka
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 25.02.2014
Mitteilungen: 814
  Beitrag No.3, eingetragen 2017-05-18

Mit dem eval-Befehl kann man Strings als Matlab-Code ausführen. Beispiel \sourceon Matlab string = 'plot([1 2],[3 4])'; eval(string) \sourceoff Die Funktion "myfunc" liefert einen Funktionsausdruck als String zurück. Diesen String möchte man nun in eine Funktion einbinden. Die Befehle \sourceon Matlab u = 'cos(x)'; eval(['myf=@(x) ',u,';']); \sourceoff machen dasselbe wie \sourceon Matlab myf = @(x) cos(x); \sourceoff


   Profil
Neodym342
Ehemals Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 31.10.2015
Mitteilungen: 145
  Beitrag No.4, vom Themenstarter, eingetragen 2017-05-18

Ok Danke für deine Hilfe!


   Profil
Neodym342 hat die Antworten auf ihre/seine Frage gesehen.
Neodym342 hat selbst das Ok-Häkchen gesetzt.

Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2023 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]