Compute derivative while preserving dimensions


Updated 17 Oct 2010

View License

% DERIVATIVE Compute derivative while preserving dimensions
% DERIVATIVE(X), for a vector X, is an estimate of the first derivative of X.
% DERIVATIVE(X), for a matrix X, is a matrix containing the first
% derivatives of the columns of X.
% DERIVATIVE(X,N) is the Nth derivative along the columns of X.
% DERIVATIVE(X,N,DIM) is the Nth derivative along dimension DIM of X.
% DERIVATIVE averages neighboring values of the simple finite differencing
% method to obtain an estimate of the derivative that is exactly the same
% size as X. This stands in contrast to Matlab's built-in DIFF, which, when
% computing a derivative of order N on length M vectors, produces a vector
% of length M-N. DERIVATIVE is therefore useful for estimating derivatives
% at the same points over which X is defined, rather than in between
% samples (as occurs implicity when using Matlab's DIFF). This means that,
% for example, dX can be plotted against the same independent variables as
% X. Note that the first and last elements of DERIVATIVE(X) will be the
% same as those produced by DIFF(X).
% For N > 1, DERIVATIVE operates iteratively N times. If N = 0, DERIVATIVE
% is the identity transformation. Use caution when computing derivatives
% for N high relative to size(X,DIM). A warning will be issued.
% Unless DIM is specified, DERIVATIVE computes the Nth derivative
% along the columns of a matrix input.


t = linspace(-4,4,500);
x = normpdf(t);
dx = derivative(x);
dt = derivative(t);

Cite As

Scott McKinney (2023). derivative (, MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2009a
Compatible with any release
Platform Compatibility
Windows macOS Linux
Find more on Descriptive Statistics in Help Center and MATLAB Answers

Inspired: diffxy, DGradient, hilbert2

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes

A small efficiency update based on helpful comments from Jan Simon. Should be updated soon to handle N-D arrays.