.. highlightlang:: us .. _interpol: interpol ======== .. index:: interpol .. us.tag interpol GERMAN Interpolation New420 Changed424 Die Funktion :ref:`interpol` führt eine lineare Interpolation oder eine Cosinus-Interpolation an gegebenen Stützstellen durch. .. function:: rvYi = interpol(rvX, rvY, rvXi) rvYi = interpol(rvX, rvY, rvXi, rsMissing) rvYi = interpol(rvX, rvY, rvXi, rsMissing, ssType) .. us.return **Returnwert** *rvYi* sind die zu *rvXi* gehörenden interpolierten Werte. Falls ein Fehler aufgetreten ist, enthält die Variable *rvYi* ein Error-Objekt (siehe Beispiel). .. us.params **Parameter** .. uparam:: rvX *rvX* ist ein reeller Vektor mit mindestens 2 x-Koordinaten. Die Koordinaten müssen monoton aufsteigend oder absteigend sein. .. uparam:: rvY *rvY* ist ein reeller Vektor mit mindestens 2 y-Koordinaten und der gleichen Länge wie *rvX*. .. uparam:: rvXi *rvXi* ist ein reeller Vektor mit mindestens einer Koordinate. .. uparam:: rsMissing 1.) Werte in *rvYi* die größer oder gleich *rsMissing* sind, werden bei der Interpolation ignoriert. Der Missing-Wert wird in *rvYi* eingetragen. 2.) Falls eine Extrapolation ausgeführt werden muss, werden die extrapolierten Werte auf *rsMissing* gesetzt. Falls *rsMissing* nicht angegeben wird, werden extrapolierte Werte auf 0 gesetzt. .. uparam:: ssType *ssType* legt fest, ob eine lineare oder cosinus Interpolation durchgeführt werten soll. *ssType* ist ein Text mit dem Wert ``linear`` oder ``cosine``. Defaultwert ist ``linear``. .. us.example **Beispiel** .. image:: S:/uniplot-obj/images/interpol.* :: x = [1,3,5,8] y = [0,5,8,2] h = plot(x,y) yi = interpol(x, y, xi = linspace(1, 8, 5)); h = plot(xi, yi, h[2]) XYSetProps(h[3], "marker='1' marker-style='circle' curve-style='dash'"); x = [1,3,5,8] y = [0,5,8,2] h = plot(x,y) yi = interpol(x, y, xi = linspace(1, 8, 5)); h = plot(xi, yi, h[2], 1e10, "cosine") XYSetProps(h[3], "marker='1' marker-style='circle' curve-style='dash'"); Falls ein Fehler auftritt, gibt interpol ein Error-Objekt zurück (siehe auch :ref:`error_create`). :: x = [1,3,4, 5,8] y = [0,5,8,2] yi = interpol(x, y, [1,2,2]); if (type(yi) == "error") { print yi.message; } .. us.history **History** .. list-table:: :header-rows: 1 * - Version - Beschreibung * - R2018.12 - Neuer Parameter *ssType*. * - 4.2.4 - Die Koordinaten *rvXi* müssen nicht mehr monoton sortiert sein. * - 4.2.0 - Neu. .. seealso:: :ref:`uberblick-mathematik`, :ref:`fspline`, :ref:`pspline`, :ref:`rspline`, :ref:`akimaspline` :sub:`id-2113436`