nvector downloads
Functions for performing various position calculations are available for download here. The functions are available in Matlab, C#, C++, Python, JavaScript, and other languages.
Matlab
The following 19 files are available for download at GitHub:
Convert between lat/long and nvector:

lat_long2n_E.m
Converts latitude and longitude to nvector n_E2lat_long.m
Converts nvector to latitude and longitude
Convert between delta (i.e. local position vector) and nvectors:
n_EA_E_and_n_EB_E2p_AB_E.m
From two positions A and B, finds the delta positionn_EA_E_and_p_AB_E2n_EB_E.m
From position A and delta, finds position B
Convert between nvector and ECEFvector (i.e. position vector from Earth center, in meters):
n_EB_E2p_EB_E.m
Converts nvector to ECEFvectorp_EB_E2n_EB_E.m
Converts ECEFvector to nvector
Convert between nvector and rotation matrix:
R_EN2n_E.m
Finds nvector from$$${R}_{EN}^{}$$$n_E2R_EN.m
Finds$$${R}_{EN}^{}$$$R_EL2n_E.m
Finds nvector from$$${R}_{EL}^{}$$$n_E_and_wa2R_EL.m
Finds$$${R}_{EL}^{}$$$
Convert between Euler angles and rotation matrix:
xyz2R.m
Creates a rotation matrix from three angles about new axes in the xyz orderR2xyz.m
Three angles about new axes in the xyz order are found from a rotation matrixzyx2R
Creates a rotation matrix from three angles about new axes in the zyx order (e.g. yawpitchroll)R2zyx.m
Three angles about new axes in the zyx order (e.g. yawpitchroll) are found from a rotation matrix
Miscellaneous simple utilities:
unit.m
Makes input vector unit length (i.e. norm=1)rad.m
Converts angle in degrees to radiansdeg.m
Converts angle in radians to degreesR_Ee.m
Selects axes of the coordinate frame E
Solutions to the ten examples:
examples.m
Solutions to the ten examples.
C# (C Sharp)
C#version of the nvector library and the 10 examples.
Author: Jørn Inge Vestgården at FFI (responsible for translation from Matlab and adaption to C#).
C++
C++version of the nvector library. (Currently, the first 8 functions in the list above are included).
Author: Magnus Baksaas at FFI (responsible for translation from Matlab and adaption to C++).
Python
A Pythonversion of the entire nvector library is available at GitHub. Python solutions to the 10 examples are also included there.
Author: Per A. Brodtkorb at FFI (responsible for translation from Matlab and adaption to Python).
JavaScript
For JavaScript, a version of the nvector library is available, and also solutions to the 10 examples. See also GitHub.
Author: Chris Veness at Movable Type (responsible for translation from Matlab and adaption to JavaScript).
Haskell
A Haskellversion of the nvector library is available at GitHub.
Author: Cedric Liegeois at Thales (responsible for translation from Matlab and adaption to Haskell).
R
For R, a version of the nvector library is available, and also solutions to the 10 examples. See also GitHub.
Author: Enrico Spinielli at EUROCONTROL (responsible for translation from Matlab and adaption to R).
Java, LabVIEW etc.
If you translate the functions to another programming language, and want to make your solution available for others, we would be happy to add your files (with credits) to this site (or add a link to a site where the functions are available).