Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

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.

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
Columns 1 through 3

   28-May-2022 00:09:07   28-May-2022 00:10:37   28-May-2022 00:12:07

Column 4

   28-May-2022 00:13:37

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 o arreglo multidimensional. X puede ser un arreglo numérico, arreglo lógico, arreglo de fecha/hora o arreglo de duración.

Soporte de números complejos:

Orden de diferencia, especificado como escalar entero positivo o []. El valor predeterminado de n es 1.

Es posible especificar n de forma suficientemente amplia como para que dim se reduzca a una única (size(X,dim) = 1) dimensión. Cuando esto ocurre, diff continúa con el cálculo en la siguiente dimensión del arreglo cuyo tamaño no es igual a 1. Este proceso continúa hasta que se devuelva una matriz vacía de 0 por 0.

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 o arreglo multidimensional. 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

| | |