exponenta event banner

разность

Различия и приблизительные производные

Описание

пример

Y = diff(X) вычисляет различия между соседними элементами X вдоль первого размера массива, размер которого не равен 1:

  • Если X - вектор длины m, то Y = diff(X) возвращает вектор длины m-1. Элементы Y представляют собой различия между соседними элементами X.

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

  • Если X является непустой, не векторной p-by-m матрицей, то Y = diff(X) возвращает матрицу размера (p-1) -by-m, элементами которой являются различия между строками X.

    Y = [X(2,:)-X(1,:); X(3,:)-X(2,:); ... X(p,:)-X(p-1,:)]
  • Если X является пустой матрицей 0 на 0, то Y = diff(X) возвращает пустую матрицу 0 на 0.

пример

Y = diff(X,n) вычисляет n-ю разницу, применяя diff(X) оператор рекурсивно n времена. На практике это означает diff(X,2) является таким же, как diff(diff(X)).

пример

Y = diff(X,n,dim) n-я разность, вычисленная вдоль размера, заданного dim. dim input является положительным целочисленным скаляром.

Примеры

свернуть все

Создайте вектор, а затем вычислите различия между элементами.

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

     0     1     1     2     3     5     8

Обратите внимание, что Y имеет на один элемент меньше, чем X.

Создайте матрицу 3 на 3, затем вычислите первую разницу между строками.

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

     4     4     4
    20    20    20

Y является матрицей 2 на 3.

Создайте вектор и вычислите разницу второго порядка между элементами.

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

     5     5     5     5     5

Создайте матрицу 3 на 3, а затем вычислите разницу первого порядка между столбцами.

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 является матрицей 3 на 2.

Используйте diff функция для аппроксимации частных производных с помощью синтаксиса Y = diff(f)/h, где f является вектором значений функций, вычисленных в некоторой области, X, и h - соответствующий размер шага.

Например, первая производная sin(x) в отношении x является cos(x)и вторую производную относительно x является -sin(x). Вы можете использовать diff для аппроксимации этих производных.

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. The axes contains 3 objects of type line.

На этом графике синяя линия соответствует исходной функции, sin. Красная линия соответствует вычисленной первой производной, cosи черная линия соответствует вычисленной второй производной, -sin.

Создайте последовательность равномерно разнесенных значений datetime и найдите различия во времени между ними.

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

   23-Mar-2021 17:02:43   23-Mar-2021 17:04:13   23-Mar-2021 17:05:43

Column 4

   23-Mar-2021 17:07:13

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

diff возвращает duration массив.

Входные аргументы

свернуть все

Входной массив, заданный как вектор, матрица или многомерный массив. X может быть числовым массивом, логическим массивом, массивом datetime или массивом duration.

Поддержка комплексного номера: Да

Порядок разностей, заданный как положительный целочисленный скаляр или []. Значение по умолчанию n равно 1.

Можно указать n достаточно большой, чтобы dim сводится к одному (size(X,dim) = 1) размерность. Когда это происходит, diff продолжает вычисление вдоль следующего размера массива, размер которого не равен 1. Этот процесс продолжается до тех пор, пока не будет возвращена пустая матрица 0 на 0.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Размерность для работы, заданная как целочисленный скаляр. Если значение не указано, то по умолчанию используется первый размер массива, размер которого не равен 1.

Рассмотрим двухмерный входной массив p-by-m, A:

  • diff(A,1,1) работы по последовательным элементам в колоннах A и возвращает (p-1) -по-m разностную матрицу.

  • diff(A,1,2) работы по последовательным элементам в строках A и возвращает матрицу разности p-by- (m-1).

Типы данных: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Выходные аргументы

свернуть все

Разностный массив, возвращаемый как скаляр, вектор, матрица или многомерный массив. Если X является непустым массивом, то измерение X действовал по diff уменьшается в размере на n в выходных данных.

Расширенные возможности

.

См. также

| | |

Представлен до R2006a