Contenu principal

diff

Différences et dérivées approximées

Description

Y = diff(X) calcule les différences entre les éléments adjacents de X. Par défaut, diff opère le long de la première dimension du tableau dont la taille n’est pas égale à 1.

  • Si X est un vecteur de longueur m, alors Y = diff(X) renvoie un vecteur de longueur m-1. Les éléments de Y sont les différences entre les éléments adjacents de X.

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

  • Si X est une matrice de dimension p x m non vide et non vectorielle, alors Y = diff(X) renvoie une matrice de taille (p-1) x m dont les éléments sont les différences entre les lignes de X.

    Y = [X(2,:)-X(1,:); X(3,:)-X(2,:); ... X(p,:)-X(p-1,:)]
  • Si X est une matrice vide de 0 x 0, alors Y = diff(X) renvoie une matrice vide de 0 x 0.

  • Si X est une table ou une timetable de dimension p x m, alors Y = diff(X) renvoie une table ou une timetable de taille (p-1) x m dont les éléments sont les différences entre les lignes de X. Si X est une table ou une timetable de 1 x m, alors Y a une taille de 0 x m. (depuis R2023a)

exemple

Y = diff(X,n) calcule la différence n-ième en appliquant l’opérateur diff(X) de manière récursive n fois le long de la première dimension du tableau dont la taille n’est pas égale à 1.

exemple

Y = diff(X,n,dim) est la différence n-ième calculée le long de la dimension spécifiée par dim. L’entrée dim est un scalaire entier positif.

exemple

Exemples

réduire tout

Créez un vecteur, puis calculez les différences entre ses éléments.

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

     0     1     1     2     3     5     8

Remarquez que Y contient un élément de moins que X.

Créez une matrice de 3 x 3, puis calculez la différence première entre ses lignes.

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

     4     4     4
    20    20    20

Y est une matrice de 2 x 3.

Créez un vecteur et calculez la différence de second ordre entre ses éléments.

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

     5     5     5     5     5

Créez une matrice de 3 x 3, puis calculez la différence de premier ordre entre ses colonnes.

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 est une matrice de 3 x 2.

Utilisez la fonction diff pour approximer des dérivées partielles avec la syntaxe Y = diff(f)/h, où f est un vecteur des valeurs d’une fonction évaluées sur un domaine X et h est une taille de pas appropriée.

Par exemple, la dérivée première de sin(x) par rapport à x est cos(x) et la dérivée seconde par rapport à x est -sin(x). Vous pouvez utiliser diff pour approximer ces dérivées.

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.

Sur ce tracé, la ligne bleue correspond à la fonction d’origine sin. La ligne rouge correspond à la dérivée première calculée cos et la ligne noire correspond à la dérivée seconde calculée -sin.

Créez une série de valeurs de type datetime uniformément espacées et déterminez les différences de temps entre ces valeurs.

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 renvoie un tableau duration.

Arguments d'entrée

réduire tout

Tableau en entrée, spécifié sous forme de vecteur, de matrice, de tableau multidimensionnel, de table ou de timetable. X peut être un tableau numérique ou logique, un tableau de type datetime ou duration ou encore une table ou une timetable dont les variables ont ces types de données.

Support des nombres complexes : Oui

Ordre de la différence, spécifié en tant que scalaire entier positif ou []. La valeur par défaut de n est 1. Lorsque n est supérieur à la dimension concernée par l’opération, diff renvoie un tableau vide.

Types de données : single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Dimension sur laquelle opérer, spécifiée en tant que scalaire entier positif. Si vous ne spécifiez pas la dimension, la valeur par défaut est la première dimension de tableau dont la taille n’est pas égale à 1.

Prenez A, un tableau en entrée à deux dimensions p x m :

  • diff(A,1,1) traite les éléments successifs des colonnes de A et renvoie une matrice des différences de (p-1) x m.

  • diff(A,1,2) traite les éléments successifs des lignes de A et renvoie une matrice des différences de p x (m-1).

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

Types de données : double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Arguments de sortie

réduire tout

Tableau des différences, renvoyé sous forme de scalaire, de vecteur, de matrice, de tableau multidimensionnel, de table ou de timetable. Si la dimension de X traitée par diff est de taille supérieure à n, elle est réduite de n dans la sortie. Si cette dimension est inférieure à n, elle est réduite à zéro et la sortie est vide.

Capacités étendues

développer tout

Historique des versions

Introduit avant R2006a

développer tout

Voir aussi

| | |