Die diff()-Funktion in MATLAB

Ammar Ali 20 Januar 2022
Die diff()-Funktion in MATLAB

Dieses Tutorial behandelt das Finden von Unterschieden und ungefähren Ableitungen mit der Funktion diff() in Matlab.

Finden von Differenzen und näherungsweisen Ableitungen mit der Funktion diff() in MATLAB

Die Funktion diff() wird verwendet, um die Differenzen und ungefähren Ableitungen in Matlab zu finden. Die Syntax: diff(x) wird verwendet, um die Unterschiede zwischen benachbarten Elementen eines Vektors oder einer Matrix zu finden. Wenn die Eingabe ein Vektor ist, ist die Differenz die Differenz zwischen benachbarten Werten des Eingabevektors. Die Größe des Ausgabevektors ist um eins kleiner als die Größe des Eingabevektors. Lassen Sie uns zum Beispiel die Differenz zwischen den Werten eines Vektors ermitteln. Siehe den Code unten.

clc
x = [1 3 6 9];
y = diff(x)

Ausgabe:

y =

     2     3     3

In der Ausgabe beträgt die Differenz zwischen den ersten beiden Elementen des Eingabevektors 1 und 3 zwei, die in der Variablen y gespeichert wird. Wenn die Eingabe eine Matrix ist, ist die Differenz die Differenz zwischen den Zeilen der Eingabematrix, und die Größe der Zeilen entspricht der Differenz zwischen der Länge der Zeilen und der Reihenfolge der Differenz. Lassen Sie uns zum Beispiel die Differenz zwischen den Werten eines Vektors ermitteln. Siehe den Code unten.

clc
x = [1 3 6 9; 1 2 3 4]
y = diff(x)

Ausgabe:

x =

     1     3     6     9
     1     2     3     4


y =

     0    -1    -3    -5

In der Ausgabe beträgt die Differenz zwischen den ersten beiden Elementen der ersten beiden Zeilen der Eingabematrix 0, die in der Variablen y gespeichert wird. Wenn wir eine Zeile in der Eingabematrix vergrößern, wird auch eine Zeile in der Ausgabematrix vergrößert. Mit dem zweiten Argument der Funktion diff() können wir auch die n-te Zeitdifferenz zwischen den Vektor- oder Matrixelementen ermitteln. Zum Beispiel findet die Funktion diff(x,2) die Differenz zweiter Ordnung zwischen den Eingabevektor- oder Matrixwerten. Die Aussage diff(x,2) entspricht der Aussage diff(diff(x)). Lassen Sie uns zum Beispiel die Differenz 2. Ordnung zwischen den Werten des obigen Vektors finden. Siehe den Code unten.

clc
x = [1 3 6 9]
y = diff(x,2)

Ausgabe:

x =

     1     3     6     9


y =

     1     0

In der Ausgabe hat sich auch die Größe des Ausgabevektors verringert, da die Größe gleich der Differenz zwischen der Länge des Eingabevektors und der Ordnung der Differenz ist. Bei höherer Ordnung ruft sich die Funktion diff() rekursiv auf, um den Unterschied zu finden. Wir können auch den Unterschied zwischen den Spalten einer Matrix anstelle der Zeile mit dem dritten Argument der Funktion diff() ermitteln. Lassen Sie uns zum Beispiel den Unterschied zwischen den Spalten der obigen Matrix finden. Siehe den Code unten.

clc
x = [1 3 6 9; 1 2 3 4]
y = diff(x,1,2)

Ausgabe:

x =

     1     3     6     9
     1     2     3     4


y =

     2     3     3
     1     1     1

Bei Unterschieden zwischen den Spalten entspricht die Größe der Spalten der Differenz zwischen der Länge der Spalten und der Reihenfolge der Differenz, und die Zeilengröße bleibt gleich. Wir können die partielle Ableitung einer Funktion auch mit der Funktion diff(f)/h ermitteln. Wobei f die gegebene Funktion und h die Schrittweite ist. Lassen Sie uns zum Beispiel die partielle Ableitung von sin(x) finden und mit der Funktion plot() in einen Graphen zeichnen. Siehe den Code unten.

h = 0.001;       
x = -2*pi:h:2*pi;    
f = sin(x);      
y = diff(f)/h;  
plot(x(:,1:length(y)),y,x,f)
legend('sin(x)','cos(x)')

Ausgabe:

Ableitung der Sinuswelle

In der Ausgabe ist die blaue Linie die Sinuswelle und die rote Linie die Kosinuswelle, die die Ableitung der Sinuswelle ist. Die Funktion legend() wird verwendet, um Legenden in den Graphen zu zeichnen, um anzuzeigen, welcher Plot zu welchen Daten gehört.

Autor: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

Verwandter Artikel - MATLAB Vector