MeshGrid (FPScript)

21.09.2021

Erzeugt ein zweidimensionales Gitter. Hilfreich zur dreidimensionalen Visualisierung von Funktionen mit zwei Variablen oder von Funktionen mit komplexwertigen Argumenten.

Syntax

MeshGrid(X, Z)

 

Die Syntax der MeshGrid-Funktion besteht aus folgenden Teilen:

Teil

Beschreibung

X

Definiert die Horizontale (X-Richtung) des zweidimensionalen Gitters.

Erlaubte Datenstrukturen sind Datenreihe. Es sind alle numerischen Datentypen erlaubt.

Z

Definiert die Vertikale (Z-Richtung) des zweidimensionalen Gitters.

Erlaubte Datenstrukturen sind Datenreihe. Es sind alle numerischen Datentypen erlaubt.

Anmerkungen

Das Ergebnis hat immer die Datenstruktur Liste.

Die Funktion erzeugt aus zwei Datenreihen X der Länge N und Z der Länge M eine Liste mit zwei gleichnamigen Einträgen X und Z. Die Ergebniseinträge der Liste sind nun allerdings Matrizen bestehend aus N Zeilen und M Spalten, die durch Replikation der Funktionsargumente X bzw. Z gebildet werden. Die Einheiten der Ergebnismatrizen stimmen mit den Einheiten der einzelnen Argumente überein.

Das Ergebnis kann als zweidimensionales Rechteckgitter mit N x M Gitterpunkten wie folgt interpretiert werden: Gegeben seien beispielsweise die Datenreihe X als {1, 2, 3, 4} in horizontaler Richtung und die Datenreihe Z als {7, 8, 9} in vertikaler Richtung. Das Gitter, aufgespannt von X und Z, besteht nun aus den Koordinaten (1, 7), (2, 7), (3, 7), (4, 7), ..., (1, 9), (2, 9), (3, 9), (4, 9):

Die Koordinaten der einzelnen Gitterpunkte erhält man also elementweise aus den beiden gleichnamigen Matrizen:

Die Funktion MeshGrid angewendet auf die beiden Datenreihen liefert nun die Liste bestehend aus den gleichnamigen dargestellten Matrizen X (erstes Listenelement) und Z (zweites Listenelement).

Die Funktion wird gewöhnlich verwendet zur dreidimensionalen Darstellung von Funktionen y = f(x, z) zweier Veränderlicher über einem zweidimensionalen Rechteckgitter. Insbesondere können damit Funktionen y = f(z) = f(z1, z2) mit komplexwertigen Argumenten z = z1 + i * z2 über der komplexen Ebene berechnet und dargestellt werden.

Verfügbarkeit

FlexPro Basic, Professional, Developer Suite

Beispiele

Dim x = {1, 2, 3, 4}
Dim z = {7, 8, 9}
Dim grid = MeshGrid(x, z)
Dim y = grid.["X"]^2 - grid.["Z"] // = grid.[0]^2 - grid.[1]
Signal(y, x, z)

Beispiel 1: Vorgehen zur Berechnung von Funktionen mit zwei Veränderlichen

Berechnet die Funktion y = x^2 - z über dem Gitter aufgespannt durch die Datenreihen {1, 2, 3, 4} (in X-Richtung) und {7, 8, 9} (in Z-Richtung):

Dim x = Series(-4, 4, 0.01)
Dim z = x
Dim grid = MeshGrid(x, z)
Dim y = ArcTan2(grid.["Z"], grid.["X"])
Signal(y, x, z)

Beispiel 2: Visualisierung der ArcTan2-Funktion mit 2 Variablen

Berechnet die ArcTan2-Funktion y = f(x, z) = ArcTan2(z, x) über dem zweidimensionalen (x, z)-Bereich [-4, 4] x [-4, 4]. Die Visualisierung in einem 3D-Konturdiagramm liefert:

Dim x = Series(-16, 16, 0.04)
Dim z = x
Dim grid = MeshGrid(x, z)
Dim y = Sinc(Sqrt(grid.["X"]^2 + grid.["Z"]^2))
Signal(y, x, z)

Beispiel 3: Visualisierung der Sinc-Funktion in 2D

Berechnet die zweidimensionale Sinc-Funktion y = f(x, z) = Sinc(Sqrt(x^2 + z^2)) über dem zweidimensionalen (x, z)-Bereich [-16, 16] x [-16, 16]. Die Visualisierung in einem 3D-Konturdiagramm liefert:

Dim z1 = Series(-6, 6, 0.02)
Dim z2 = z1
Dim grid = MeshGrid(z1, z2)
Dim y = Real(Log(grid.[0] + 1i * grid.[1]))
Signal(y, z1, z2)

Beispiel 4: Visualisierung von Funktionen mit komplexen Argumenten

Berechnet den Realteil des komplexen Logarithmus y = f(z1, z2) = Real(Log(z1 + i* z2)) über der komplexen (z1, z2)-Ebene [-6, 6] x [-6, 6]. Die Visualisierung in einem 3D-Konturdiagramm liefert:

Arguments x, z
Dim xMatrix = x # NumberOfRows(z)
Dim zMatrix = TransposeMatrix(z # NumberOfRows(x))
List("X", xMatrix, "Z", zMatrix)

Beispiel 5: Äquivalenter FPScript Code

Diese FPScript-Funktion liefert das gleiche Resultat wie die MeshGrid-Funktion.

Siehe auch

ArcTan2-Funktion

List-Funktion

NumberOfColumns-Funktion

NumberOfRows-Funktion

Reshape-Funktion

Shape-Funktion

TransposeMatrix-Funktion

Listenoperator

Listenelementoperator

Artikel teilen oder als Email versenden:

Diese Beiträge könnten Sie ebenfalls interessieren