|
|
Eigene Funktion definieren!!! |
|
Medion |
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 02.02.14
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 02.02.2014, 13:54
Titel: Eigene Funktion definieren!!!
|
|
Hallo zusammen,
komme bei folgenden Aufgaben einfach nicht weiter!
Aufgabe 1: Wie würden Sie die Funktion y=x^4-x^2+5x-1 auf möglichst einfache Weise in MATLAB definieren? Wie würden Sie dann zum Beispiel y(12,52) berechnen?
Aufgabe 2: Wie definieren Sie allgemein in MATLAB eine Polynomfunktion y=f(x) vierter Ordnung? Wie würden Sie dann zum Beispiel y(x0) für eine bestimmte Zahl x0 z.B. x0=3,37 berechnen?
|
|
|
|
|
Winkow |
Moderator
|
|
Beiträge: 3.842
|
|
|
|
Anmeldedatum: 04.11.11
|
|
|
|
Wohnort: Dresden
|
|
|
|
Version: R2014a 2015a
|
|
|
|
|
|
Verfasst am: 02.02.2014, 13:56
Titel:
|
|
Zitat: |
komme bei folgenden Aufgaben einfach nicht weiter! |
was hast du denn schon versucht ?
so kompliziert klingt das ja nicht. schonmal function in der doc gesucht?
_________________
richtig Fragen
|
|
|
Medion |
Themenstarter
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 02.02.14
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 02.02.2014, 14:02
Titel:
|
|
Ja ich hab folgendes versucht (für Aufgabe 2)
x=[0:0.1:10];
function y=f(x);
y=x.^4+2*x.^3+3*x.^2+4*x.^1+5;
x(3.37)
Kommt immer error?!
|
|
|
Winkow |
Moderator
|
|
Beiträge: 3.842
|
|
|
|
Anmeldedatum: 04.11.11
|
|
|
|
Wohnort: Dresden
|
|
|
|
Version: R2014a 2015a
|
|
|
|
|
|
Verfasst am: 02.02.2014, 14:07
Titel:
|
|
wenn fehler kommen solltest du die fehlermeldungen auch posten. die sind meinst nicht zufällig generiert sondern sagen dir was du fallsch machst ^^
1.es siht nicht so aus als währe deine function in einem extra function file. hast du dir die doc zu function durchgelesen?
alternativ kann man anonyme funktionen benutzen.
2
kann nicht funktionieren da ein index immer ein positiver natürlicher wert sein muss.
_________________
richtig Fragen
|
|
|
Medion |
Themenstarter
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 02.02.14
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 02.02.2014, 14:18
Titel:
|
|
x=[0:0.1:10];
function y=f(x);
y=x.^4+2*x.^3+3*x.^2+4*x.^1+5;
x(3.37)
??? Error: File: asd.m Line: 2 Column: 1
Function definitions are not permitted
in this context.
Könntest du mir vllt einfach kurz die Lösung sagen?
Ich schreib morgen eine Klausur und bräuchte die Lösung echt dringend...
|
|
|
Winkow |
Moderator
|
|
Beiträge: 3.842
|
|
|
|
Anmeldedatum: 04.11.11
|
|
|
|
Wohnort: Dresden
|
|
|
|
Version: R2014a 2015a
|
|
|
|
|
|
Verfasst am: 02.02.2014, 14:22
Titel:
|
|
Medion hat Folgendes geschrieben: |
??? Error: File: asd.m Line: 2 Column: 1
Function definitions are not permitted
in this context.
Könntest du mir vllt einfach kurz die Lösung sagen?
Ich schreib morgen eine Klausur und bräuchte die Lösung echt dringend... |
morgen klausur und heute die grundlagen lernen ist recht knapp ^^
zur lösung des problems:
winkow hat Folgendes geschrieben: |
1.es siht nicht so aus als währe deine function in einem extra function file. hast du dir die doc zu function durchgelesen?
alternativ kann man anonyme funktionen benutzen.
|
_________________
richtig Fragen
|
|
|
Medion |
Themenstarter
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 02.02.14
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 02.02.2014, 14:35
Titel:
|
|
Ja den Funktion Befehl habe ich nicht in der Vorlesung gehabt...
Anfangs habe ich es probiert über den Befehl eval....
Also wie folgt:
x=[0:0.1:10];
y='x.^4+2*x.^3+3*x.^2+4*x+5';
z=eval(y);
plot(x,z)
z(3.37)
Nur dann kommt folgender Fehler:
Error in ==> asd at 5
z(3.37)
Der Graph wird ja gezeichnet nur eben möchte ich ja noch den y-Wert für x=3.37 bekommen...
|
|
|
Winkow |
Moderator
|
|
Beiträge: 3.842
|
|
|
|
Anmeldedatum: 04.11.11
|
|
|
|
Wohnort: Dresden
|
|
|
|
Version: R2014a 2015a
|
|
|
|
|
|
Verfasst am: 02.02.2014, 14:42
Titel:
|
|
wenn du das so in der vorlesung gelernt hast.......
das ist sehr schlecht. eval sollte man nur im notfall benutzen. es ist nur sehr schlecht zu debuggen.
ich geb dir nicht die lösung aber fast
oder auch
_________________
richtig Fragen
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 02.02.2014, 21:01
Titel:
|
|
Hallo Medion,
Zitat: |
??? Error: File: asd.m Line: 2 Column: 1
Function definitions are not permitted in this context. |
Ein M-File, welches nicht mit "function" beginnt, ist ein "Script". In solchen Scripten sind Definitionen von Funktionen nicht erlaubt. In anderen Function-M-Files aber schon. Also kannst Du aus dem File einfach eine Funktion machen:
Gruß, Jan
|
|
|
Mayu |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.08.2016, 15:24
Titel:
|
|
Hey ich hatte das gleiche Problem.
Mir hat das weiter geholfen:
http://de.mathworks.com/help/matlab...../anonymous-functions.html
wenn ich die Funktion f(x) = x^2 definieren will dann geschieht das in Matlab so:
quadrat = @(x) x^2;
Das @ definiert dass der Datentyp function handle erstellt wird (So wird die Fkt gespeichert)
In der Klammer wird die Variable gespeichert.
Daraufhin wird die Funktion definiert.
wenn man nun von 2^2 rechnen will macht man
quadrat(2) und matlab liefert 4
Hoffe das hilft einigen weiter
Gruß Mayu
|
|
|
|
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| 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.
|
|