Main Content


Length of path



len = pathLength(path) returns the total length of path by summing the distances between every sequential pair of states in the path. The function uses the state space object associated with path to calculate the distance between each state pair.


collapse all

Create a navPath object based on multiple waypoints in a Dubins space.

dubinsSpace = stateSpaceDubins([0 25; 0 25; -pi pi])
dubinsSpace = 
  stateSpaceDubins with properties:

   SE2 Properties
                 Name: 'SE2 Dubins'
          StateBounds: [3x2 double]
    NumStateVariables: 3

   Dubins Vehicle Properties
     MinTurningRadius: 1

pathobj = navPath(dubinsSpace)
pathobj = 
  navPath with properties:

    StateSpace: [1x1 stateSpaceDubins]
        States: [0x3 double]
     NumStates: 0

waypoints = [...
    8 10 pi/2;
    10 12 pi/4;
    12 17 pi/2;
    11 10 -pi];
append(pathobj, waypoints);

Interpolate that path so that it contains exactly 250 points.

interpolate(pathobj, 250)

Visualize the interpolated path and the original waypoints.

grid on;
axis equal;
hold on;
plot(pathobj.States(:,1), pathobj.States(:,2), ".b");
plot(waypoints(:,1), waypoints(:,2), "*r", "MarkerSize", 10)

Figure contains an axes object. The axes object contains 2 objects of type line.

Calculate length of path.

len = pathLength(pathobj);
disp("Path length = " + num2str(len))
Path length = 19.37

Input Arguments

collapse all

Path object, specified as a navPath object.

Data Types: object

Output Arguments

collapse all

Length of the path, returned as a nonnegative scalar.

Version History

Introduced in R2019b

See Also