File Exchange

image thumbnail


version (3.26 KB) by John D'Errico
Compute the arclength of a general curve in any number of dimensions


Updated 01 Feb 2012

View License

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

The arclength function computes the length of a general space curve. This is not too difficult if the curve is assumed to be piecewise linear (a one liner) but if the curve is to be a smoothly interpolated spline, then the problem becomes more difficult.

A nice way to solve this problem for the cubic case is to formulate it as a numerical integration, whereupon the solution can be gained from quadgk. Carefully written code breaks the problem into a series of integrals between each pair of breaks on the curve to avoid the derivative singularities one would find otherwise.

Cite As

John D'Errico (2020). arclength (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (22)

Ondrej Kucera

Lukasz Cabak

Benjamin Marc Auer

Saved my day (and year) for my university project

Josh Philipson

John - I wish to thank you for your many submissions, and for sharing your work and your brainpower. So very appreciated. May God richly bless you, sir.

katharine edwards

Sandra Haas

Ying Tang


I would like to plot the function being integrated as a check. How can I do this? Thanks!

Suhit K

Does not appear to work for the parametric spline approximation method. Throws error: The data sites should be distinct.

Tilak Mallikarjun

Vasiliy Nikiforov



Many thanks!

Joe Passman



I have a project for measuring Retinal vessel tortuosity and the length of them.
Can any body help me? thank you

Charles Nelatury


Excellent software. Works exactly as stated, and linear algorithm is alarmingly fast.



Thanks God.....I got it... at last..

Mark Shore

I must say it's strange to see a D'Errico contribution receive 2 stars.

So I'll repost my original rating (lost when John temporarily removed this contribution last year).



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