Java 8: Function

Kababär

Top Contributor
Hi,

als ich, mal wieder, im Internet danach gesucht habe, ob man Funktionen plotten kann in JavaFX,
bin ich auf einen beeindruckenden Code gestoßen, der aber kompliziert aufgebaut ist für "Relativ-Anfänger".

So wie in Matlab (Algebraprogramm [und noch mehr?]) will ich mir Funktionen grafisch in einem Koordinatensystem anzeigen lassen.
Dabei will ich folgendes erreichen:
- Signale (Sinus, Cosinus, Rechteckfunktionen, Impulsfolgen, etc.) anzeigen
- Fourier-Transformation (DFT; FFT, IFFT) berechnen und anzeigen
- Filter anwenden (Bandpass, Tiefpass, etc)
- etc..
Thema : Signalverarbeitung

In dem Code wird
Code:
x -> .25 * (x + 4) * (x + 1) * (x - 2)
als Parameter in Plot aufgerufen und in einer Funktion gespeichert.
Der y-Wert ergibt sich durch f.apply(x);
Nun meine Frage: Funktioniert das so einfach auch mit anderen Werten?
Könnte mir jemand erklären wie das funktioniert? :/
 
Zuletzt bearbeitet:
Code:
x -> .25 * (x + 4) * (x + 1) * (x - 2)

Das sind Lambda Expressions, die mit Java 8 dazugekommen sind. Im Prinzip ist das das gleiche wie:

Java:
new Function<Double, Double> {
@Override
public Double apply(Double x) {
return 0.25 * (x + 4) * (x + 1) * (x - 2);
}
}

Lässt sich damit aber oftmals verkürzt und funktionaler aufschreiben. Vorm Pfeil stehen die Argumente, hinterm Pfeil das Ergebnis der Funktion.
Der Teil vorm Pfeil lässt sich auch schreiben als (Double x)[\icode], dann ist es vllt etwas verständlicher, dass es das "Funktionsparameter" ist. [QUOTE="Kababär, post: 1089863, member: 29139"] Was macht dieses .25?[/QUOTE] Ist abgekürzt für [icode]0.25[\icode] ;)
 
Aso ok vielen Dank 🙂
Dann ist das ja nicht so kompliziert wie ich dachte.
Ich wusste auch bis eben nicht, dass man Double-Werte abkürzen kann, wenn die Bedingung: 0<x<1 gilt.
War wegen dem Term .25 ebenfalls verwirrt.

Danke für die Aufklärung
 

Neue Themen


Zurück
Oben