Contenido principal

diff

Diferencias y derivadas aproximadas

Descripción

Y = diff(X) calcula las diferencias entre elementos adyacentes de X. De forma predeterminada, diff opera en la primera dimensión del arreglo cuyo tamaño no es igual a 1.

  • Si X es un vector de longitud m, Y = diff(X) devuelve un vector de longitud m-1. Los elementos de Y son las diferencias entre elementos adyacentes de X.

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

  • Si X es una matriz no vacía, no vectorial de p por m, Y = diff(X) devuelve una matriz de tamaño (p-1) por m cuyos elementos son las diferencias entre las filas de X.

    Y = [X(2,:)-X(1,:); X(3,:)-X(2,:); ... X(p,:)-X(p-1,:)]
  • Si X es una matriz vacía de 0 por 0, Y = diff(X) devuelve una matriz vacía de 0 por 0.

  • Si X es una tabla u horario de p por m, Y = diff(X) devuelve una tabla u horario de tamaño (p-1) por m cuyos elementos son las diferencias entre las filas de X. Si X es una tabla u horario de 1 por m, el tamaño de Y es de 0 por m. (desde R2023a)

ejemplo

Y = diff(X,n) calcula la n-ésima diferencia aplicando el operador diff(X) de forma recursiva n veces a lo largo de la primera dimensión del arreglo cuyo tamaño no sea igual a 1.

ejemplo

Y = diff(X,n,dim) es la n-ésima diferencia calculada en la dimensión especificada por dim. La entrada dim es un escalar entero positivo.

ejemplo

Ejemplos

contraer todo

Cree un vector y luego calcule las diferencias entre los elementos.

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

     0     1     1     2     3     5     8

Tenga en cuenta que Y tiene un elemento menos que X.

Cree una matriz de 3 por 3 y luego calcule la primera diferencia entre las filas.

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

     4     4     4
    20    20    20

Y es una matriz de 2 por 3.

Cree un vector y calcule la diferencia de segundo orden entre los elementos.

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

     5     5     5     5     5

Cree una matriz de 3 por 3 y luego calcule la diferencia de primer orden entre las columnas.

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 es una matriz de 3 por 2.

Use la función diff para aproximar derivadas parciales con la sintaxis Y = diff(f)/h, donde f es un vector de valores de función evaluado en algún dominio, X, y h es un tamaño de paso apropiado.

Por ejemplo, la primera derivada de sin(x) con respecto a x es cos(x) y la segunda derivada con respecto a x es -sin(x). Puede utilizar diff para aproximar estas derivadas.

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.

En esta gráfica la línea azul corresponde a la función original sin. La línea roja corresponde a la primera derivada calculada, cos, y la línea negra corresponde a la segunda derivada calculada, -sin.

Cree una secuencia de valores de fecha/hora espaciados uniformemente y encuentre las diferencias entre ellos.

t1 = datetime('now');
t2 = t1 + minutes(5);
t = t1:minutes(1.5):t2
t = 1×4 datetime
   13-Jul-2025 19:29:05   13-Jul-2025 19:30:35   13-Jul-2025 19:32:05   13-Jul-2025 19:33:35

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

diff devuelve un arreglo duration.

Argumentos de entrada

contraer todo

Arreglo de entrada, especificado como vector, matriz, arreglo multidimensional, tabla u horario. X puede ser un arreglo numérico, arreglo lógico, arreglo de fecha/hora o arreglo de duración o una tabla u horario cuyas variables tengan cualquiera de estos tipos de datos.

Soporte de números complejos:

Orden de diferencia, especificado como escalar entero positivo o []. El valor predeterminado de n es 1. Cuando n es mayor que la dimensión sobre la que se opera, diff devuelve un arreglo vacío.

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Dimensión en la que operar, especificada como escalar entero positivo. Si no especifica la dimensión, el valor predeterminado es la primera dimensión del arreglo cuyo tamaño no es igual a 1.

Considere un arreglo de entrada bidimensional de p por m, A:

  • diff(A,1,1) opera en elementos sucesivos de las columnas de A y devuelve una matriz de diferencia de (p-1) por m.

  • diff(A,1,2) opera en elementos sucesivos de las filas de A y devuelve una matriz de diferencia de p por (m-1).

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

Tipos de datos: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Argumentos de salida

contraer todo

Arreglo de diferencia, devuelto como escalar, vector, matriz, arreglo multidimensional, tabla u horario. Si la dimensión de X sobre la que actúa diff tiene un tamaño mayor que n, entonces esta dimensión se reduce en n en la salida. Si esta dimensión es menor que n, se reduce a cero y la salida está vacía.

Capacidades ampliadas

expandir todo

Historial de versiones

Introducido antes de R2006a

expandir todo

Consulte también

| | |