Main Content

diff

Diferencias y derivadas aproximadas

Descripción

ejemplo

Y = diff(X) calcula diferencias entre elementos adyacentes de X en la primera dimensión de 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. En la práctica, esto significa que diff(X,2) es lo mismo que diff(diff(X)).

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.

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 = 1x4 datetime
   25-Jan-2024 22:19:42   25-Jan-2024 22:21:12   25-Jan-2024 22:22:42   25-Jan-2024 22:24:12

dt = diff(t)
dt = 1x3 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.

El comportamiento de diff cuando n es mayor que la dimensión con la que se opera depende de la sintaxis que se utilice:

  • Con diff(X,n), cuando n es mayor que la primera dimensión no singular, diff reduce el tamaño de esa dimensión a 1 y luego continúa tomando diferencias en la siguiente dimensión no singular.

  • Con diff(X,n,dim), donde n >= size(X,dim), 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 de tamaño mayor que 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 X es un arreglo no vacío, la dimensión de X sobre la que actúa diff se reduce en tamaño por n en la salida.

Capacidades ampliadas

Historial de versiones

Introducido antes de R2006a

expandir todo

Consulte también

| | |