Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

diff

Diferencias y derivados aproximados

Descripción

ejemplo

Y = diff(X) calcula las diferencias entre los elementos adyacentes de X a lo largo de la primera cota de matriz 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 los elementos adyacentes de X.

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

  • Si X es un no vacío, matriz de p-por-m no vectorial, entonces Y = diff(X) devuelve una matriz de tamaño (p-1)-by-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 diferencia de enésima aplicación del operador diff(X) recursivamente n Times. En la práctica, esto significa que diff(X,2) es igual que diff(diff(X)).

ejemplo

Y = diff(X,n,dim) es la diferencia nth calculada a lo largo de la cota especificada por dim. La entrada dim es un escalar entero positivo.

Ejemplos

contraer todo

Cree un vector y, a continuación, 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, a continuación, 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, a continuación, 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.

Utilice la función diff para aproximar los derivados parciales con la sintaxis Y = diff(f)/h, donde f es un vector de valores de función evaluados sobre 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 estos derivados.

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')

En esta trama, 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 DATETIME igualmente espaciados y encuentre las diferencias de tiempo entre ellas.

t1 = datetime('now');
t2 = t1 + minutes(5);
t = t1:minutes(1.5):t2
t = 1x4 datetime array
Columns 1 through 3

   16-Mar-2018 16:53:45   16-Mar-2018 16:55:15   16-Mar-2018 16:56:45

Column 4

   16-Mar-2018 16:58:15

dt = diff(t)
dt = 1x3 duration array
   00:01:30   00:01:30   00:01:30

diff devuelve una matriz duration .

Argumentos de entrada

contraer todo

Matriz de entrada, especificada como vector, matriz o matriz multidimensional. X puede ser una matriz numérica, una matriz lógica, una matriz DateTime o una matriz de duración.

Soporte de números complejos:

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

Es posible especificar n suficientemente grande para que dim reduzca a una sola dimensión (size(X,dim) = 1). Cuando esto sucede, diff continúa calculando a lo largo de la siguiente cota de matriz cuyo tamaño no es igual a 1. Este proceso continúa hasta que se devuelve una matriz vacía de 0 por 0.

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

Dimensión para operar a lo largo, especificada como un escalar entero positivo. Si no se especifica ningún valor, la opción predeterminada es la primera dimensión de matriz cuyo tamaño no es igual a 1.

Considere una matriz de entrada de dos dimensiones p-por-m, A:

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

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

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

Argumentos de salida

contraer todo

Matriz de diferencias, devuelta como escalar, Vector, matriz o matriz multidimensional. Si X es una matriz no vacía, la dimensión de X actuado por diff se reduce en tamaño por n en la salida.

Capacidades ampliadas

Consulte también

| | |

Introducido antes de R2006a