Hauptinhalt

diff

Differenzen und Näherungsableitungen

Beschreibung

Y = diff(X) berechnet die Differenz zwischen benachbarten Elementen von X. Standardmäßig wird diff entlang der ersten Array-Dimension ausgeführt, deren Größe nicht 1 ist.

  • Wenn X ein Vektor der Länge m ist, gibt Y = diff(X) einen Vektor der Länge m-1 zurück. Die Elemente von Y sind die Differenzen zwischen benachbarten Elementen von X.

    Y = [X(2)-X(1) X(3)-X(2) ... X(m)-X(m-1)]

  • Wenn X eine nicht leere, nicht vektorielle p-mal-m-Matrix ist, gibt Y = diff(X) eine Matrix der Größe (p-1)-mal-m zurück, deren Elemente die Differenzen zwischen den Zeilen von X darstellen.

    Y = [X(2,:)-X(1,:); X(3,:)-X(2,:); ... X(p,:)-X(p-1,:)]
  • Wenn X eine leere 0x0-Matrix ist, gibt Y = diff(X) eine leere 0x0-Matrix zurück.

  • Wenn X eine Tabelle oder ein Timetable der Größe p-mal-m ist, gibt Y = diff(X) eine Tabelle oder einen Timetable der Größe (p-1)-mal-m zurück, deren bzw. dessen Elemente die Differenzen zwischen den Zeilen von X darstellen. Wenn X eine Tabelle oder ein Timetable der Größe 1-mal-m ist, weist Y die Größe 0-mal-m auf. (seit R2023a)

Beispiel

Y = diff(X,n) berechnet die n-te Differenz durch die rekursive n-malige Anwendung des diff(X)-Operators entlang der ersten Array-Dimension, deren Größe nicht 1 ist.

Beispiel

Y = diff(X,n,dim) ist die n-te Differenz, die entlang der mit dim festgelegten Dimension berechnet wird. Die dim-Eingabe ist ein positiver ganzzahliger Skalar.

Beispiel

Beispiele

alle reduzieren

Erstellen Sie einen Vektor und berechnen Sie dann die Differenzen zwischen den Elementen.

X = [1 1 2 3 5 8 13 21];
Y = diff(X)
Y = 1×7

     0     1     1     2     3     5     8

Beachten Sie, dass Y ein Element weniger aufweist als X.

Erstellen Sie eine 3x3-Matrix und berechnen Sie dann die erste Differenz zwischen den Zeilen.

X = [1 1 1; 5 5 5; 25 25 25];
Y = diff(X)
Y = 2×3

     4     4     4
    20    20    20

Y ist eine 2x3 Matrix.

Erstellen Sie einen Vektor und berechnen Sie die Differenz zweiter Ordnung zwischen den Elementen.

X = [0 5 15 30 50 75 105];
Y = diff(X,2)
Y = 1×5

     5     5     5     5     5

Erstellen Sie eine 3x3-Matrix und berechnen Sie dann die Differenz erster Ordnung zwischen den Spalten.

X = [1 3 5;7 11 13;17 19 23];
Y = diff(X,1,2)
Y = 3×2

     2     2
     4     2
     2     4

Y ist eine 3x2 Matrix.

Verwenden Sie die diff-Funktion zur Annäherung an partielle Ableitungen mithilfe der Syntax Y = diff(f)/h, wobei f ein Vektor von Funktionswerten ist, die über einen Bereich X ausgewertet werden, und h eine geeignete Schrittgröße ist.

Zum Beispiel ist cos(x) die erste Ableitung von sin(x) nach x und -sin(x) die zweite Ableitung nach x. Sie können diese Ableitungen mithilfe von diff approximieren.

h = 0.001;       % step size
X = -pi:h:pi;    % domain
f = sin(X);      % range
Y = diff(f)/h;   % first derivative
Z = diff(Y)/h;   % second derivative
plot(X(:,1:length(Y)),Y,'r',X,f,'b', X(:,1:length(Z)),Z,'k')

Figure contains an axes object. The axes object contains 3 objects of type line.

In diesem Diagramm entspricht die blaue Linie der ursprünglichen Funktion, sin. Die rote Linie entspricht der berechneten ersten Ableitung, cos, und die schwarze Linie entspricht der berechneten zweiten Ableitung, -sin.

Erstellen Sie eine Folge abstandsgleicher Datums-/Uhrzeit-Werte und ermitteln Sie die Zeitdifferenzen zwischen ihnen.

t1 = datetime('now');
t2 = t1 + minutes(5);
t = t1:minutes(1.5):t2
t = 1×4 datetime
   24-Jan-2026 21:13:43   24-Jan-2026 21:15:13   24-Jan-2026 21:16:43   24-Jan-2026 21:18:13

dt = diff(t)
dt = 1×3 duration
   00:01:30   00:01:30   00:01:30

diff gibt ein duration-Array zurück.

Eingabeargumente

alle reduzieren

Eingabearray, angegeben als Vektor, Matrix, mehrdimensionales Array, Tabelle oder Timetable. X kann ein numerisches Array, ein logisches Array, ein Datums-/Uhrzeit-Array oder ein Dauer-Array sein, oder eine Tabelle oder ein Timetable, deren bzw. dessen Variablen einen dieser Datentypen aufweisen.

Unterstützung komplexer Zahlen: Ja

Differenzreihenfolge, angegeben als positiver ganzzahliger Skalar oder []. Der Standardwert von n ist 1. Wenn n größer als die Ausführungsdimension ist, gibt diff ein leeres Array zurück.

Datentypen: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Dimension, entlang der die Operation erfolgt, angegeben als positiver ganzzahliger Skalar. Wenn Sie die Dimension nicht angeben, wird standardmäßig die erste Array-Dimension verwendet, deren Größe nicht 1 ist.

Angenommen, es liegt ein zweidimensionales p-mal-m-Eingabearray, A, vor:

  • diff(A,1,1) wird für aufeinanderfolgende Elemente in den Spalten von A ausgeführt und gibt eine (p-1)-mal-m-Differenzmatrix zurück.

  • diff(A,1,2) wird für aufeinanderfolgende Elemente in den Zeilen von A ausgeführt und gibt eine p-mal-(m-1)-Differenzmatrix zurück.

diff(A,1,1) column-wise computation and diff(A,1,2) row-wise computation

Datentypen: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Ausgabeargumente

alle reduzieren

Differenzarray, zurückgegeben als Skalar, Vektor, Matrix, mehrdimensionales Array, Tabelle oder Timetable. Wenn die Dimension von X, auf die diff-Funktion angewendet wird, eine Größe von mehr als n aufweist, wird diese Dimension in der Ausgabe um n reduziert. Wenn diese Dimension kleiner als n ist, wird sie auf null reduziert und die Ausgabe ist leer.

Erweiterte Fähigkeiten

alle erweitern

Versionsverlauf

Eingeführt vor R2006a

alle erweitern

Siehe auch

| | |