This function is used to calculate the distance between two points on the earth surface, using different ellipsoid parameters.
The original author is Orlando Rodríguez. I changed the code a little bit, and now it works in vector computation.
function r=geodistance(ci,cf,m)
%GEODISTANCE: Calculates the distance in meters between two points on earth surface.
%
% Usage: r = geodistance( coordinates1 , coordinates2 , method ) ;
%
% Where coordinates1 = [longitude1,latitude1] defines the
% initial position and coordinates2 = [longitude2,latitude2]
% defines the final position.
% Coordinates values should be specified in decimal degrees.
% Method can be an integer between 1 and 23, default is m = 6.
% Methods 1 and 2 are based on spherical trigonometry and a
% spheroidal model for the earth, respectively.
% Methods 3 to 24 use Vincenty's formulae, based on ellipsoid
% parameters.
% Here it follows the correspondence between m and the type of
% ellipsoid:
%
% m = 3 -> ANS , m = 4 -> GRS80, m = 5 -> WGS72,
% m = 6 -> WGS84, m = 7 -> NSWC-9Z2,
% m = 8 -> Clarke 1866, m = 9 -> Clarke 1880,
%