File Exchange

## central_diff.m

version 2.0.0.0 (4.12 KB) by
Calculates numeric gradient using second-order difference formula for unevenly spaced data

Updated 01 Oct 2015

Editor's Note: This file was selected as MATLAB Central Pick of the Week

The central_diff function calculates a numeric gradient using second-order accurate difference formula for evenly or unevenly spaced coordinate data. It operates in a similar fashion to the MATLAB function, gradient, except that it permits only one independent variable, x, and correctly handles unevenly spaced values of the x-coordinate data. Accuracy is increased at the ends relative to the MATLAB gradient function, which uses only first-order forward or backward differences at the ends, by instead using second-order forward difference at the left end and second-order backward difference at the right end.

### Cite As

Robert Canfield (2021). central_diff.m (https://www.mathworks.com/matlabcentral/fileexchange/12-central_diff-m), MATLAB Central File Exchange. Retrieved .

### Comments and Ratings (4)

Francis Lagor

I believe that line 127 should be:
Fx(end,:) = ( [1, -4, 3]/(2*H)*F(end-2:end,:) ).';
Fx(end,:) = ( [1, -4, 3]/(2*H)*F(m-2:m,:) ).';
Also, I believe that line 141 should be:
Fx(2:n-1,:) = ( F(3:n,:) - F(1:n-2,:) ) / (2*H);
Fx(2:n-1) = ( F(3:n,:) - F(1:n-2,:) ) / (2*H);

Alvaro Valcarce

I think that line 98 should be (notice the "=" sign)

if n >= 3

to account for the case of length 3 vectors.

Shyang-Wen Tseng

This is a very good and usefull add-on function. Thank you.

godlove njie teku

##### MATLAB Release Compatibility
Created with R2015b
Compatible with any release
##### Platform Compatibility
Windows macOS Linux