Problem 635. Angle between Two Vectors

The dot product relationship, a dot b = | a | | b | cos(theta), can be used to determine the acute angle between vector a and vector b ( 0 to pi ).

The definition of | a | is ( a(1)a(1)+a(2)a(2)...+a(n)a(n) )^0.5.

The definition of "a dot b" is a(1)b(1)+a(2)b(2)...+a(n)b(n). (wikipedia)

In 3-D the angle is in the plane created by the vectors a and b.

The input may be a 2-D or a 3-D vector. These represent physical models.

An extension of this angular determination given vectors problem is to provide two points for each vector. The practical application relates to Laser Trackers which best fit multiple points for lines, surfaces, annular surfaces, and other reference points.


a=[1 0] (x-axis); b=[0 1] (y-axis) which intersect at 90 degrees (pi/2)

theta=acos(a dot b/(|a||b|)=acos(0/(1*1))=pi/2 radians

a=[1 1 0] 45 degrees in xy plane b=[1 1 1.414] 45 degree vector in Z above a 45 degree rotation in XY plane.

theta=acos(a dot b/(|a||b|)=acos(2/(1.414*2))=pi/4 radians

Solution Stats

63.36% Correct | 36.64% Incorrect
Last solution submitted on Feb 20, 2017
Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

MATLAB Academy

New to MATLAB?

Learn MATLAB today!