Calculate angles correctly between two vectors using the dot product. (2024)

31 views (last 30 days)

Show older comments

LH on 4 Jan 2024

  • Link

    Direct link to this question

    https://support.mathworks.com/matlabcentral/answers/2066481-calculate-angles-correctly-between-two-vectors-using-the-dot-product

  • Link

    Direct link to this question

    https://support.mathworks.com/matlabcentral/answers/2066481-calculate-angles-correctly-between-two-vectors-using-the-dot-product

Answered: Torsten on 4 Jan 2024

Open in MATLAB Online

Hi all,

As shown below in the figure, I have two vectors, Calculate angles correctly between two vectors using the dot product. (2)and Calculate angles correctly between two vectors using the dot product. (3), and I want to calculate the angle with the norm,Calculate angles correctly between two vectors using the dot product. (4) andCalculate angles correctly between two vectors using the dot product. (5), between each of these vectors with respect to vector L using the dot product.

Calculate angles correctly between two vectors using the dot product. (6)

Here is a simple code to calculate these angles:

close all;

clear all;

%define the reference vector

L = [-0.5 -0.5];

%v1

v1 = [-0.6788 0.3214];

%theta1 with the x axis

theta1 = acos((v1(1)*L(1)+v1(2)*L(2))/(sqrt(v1(1)^2+v1(2)^2)*sqrt(L(1)^2+L(2)^2)));

%theta1 with the norm

theta1norm = pi/2 - theta1;

%v2

v2 = [0.3214 -0.6788];

%theta2 with the x axis

theta2 = acos((v2(1)*L(1)+v2(2)*L(2))/(sqrt(v2(1)^2+v2(2)^2)*sqrt(L(1)^2+L(2)^2)));

%theta1 with the norm

theta2norm = pi/2 - theta2;

My question here is that the product produces both angles to be equal, i.e., Calculate angles correctly between two vectors using the dot product. (7). However, and as shwon in the figure, it is clear that Calculate angles correctly between two vectors using the dot product. (8), i.e., Calculate angles correctly between two vectors using the dot product. (9)and Calculate angles correctly between two vectors using the dot product. (10). How can I caulcate these angles correctly using the dot product?

Thanks.

1 Comment

Show -1 older commentsHide -1 older comments

Dyuman Joshi on 4 Jan 2024

  • Link

    Direct link to this comment

    https://support.mathworks.com/matlabcentral/answers/2066481-calculate-angles-correctly-between-two-vectors-using-the-dot-product#comment_3017596

"However, and as shwon in the figure, it is clear that Theta2n = Theta1N + pi/2"

How exactly is that clear or shown?

"How can I caulcate these angles correctly using the dot product?"

Utilize these functions - dot, norm

Sign in to comment.

Sign in to answer this question.

Answers (3)

Hassaan on 4 Jan 2024

  • Link

    Direct link to this answer

    https://support.mathworks.com/matlabcentral/answers/2066481-calculate-angles-correctly-between-two-vectors-using-the-dot-product#answer_1383341

  • Link

    Direct link to this answer

    https://support.mathworks.com/matlabcentral/answers/2066481-calculate-angles-correctly-between-two-vectors-using-the-dot-product#answer_1383341

Open in MATLAB Online

% Close all figures and clear variables

close all;

clear all;

% Define the reference vector

L = [-0.5 -0.5];

% Define the first vector v1 and calculate the angle with L

v1 = [-0.6788 0.3214];

% Dot product of v1 and L

dot_v1_L = dot(v1, L);

% Norms of v1 and L

norm_v1 = norm(v1);

norm_L = norm(L);

% Angle theta1 with the x axis

theta1 = acos(dot_v1_L / (norm_v1 * norm_L));

% Angle theta1 with the norm

theta1norm = pi/2 - theta1;

% Define the second vector v2 and calculate the angle with L

v2 = [0.3214 -0.6788];

% Dot product of v2 and L

dot_v2_L = dot(v2, L);

% Norms of v2

norm_v2 = norm(v2);

% Angle theta2 with the x axis

theta2 = acos(dot_v2_L / (norm_v2 * norm_L));

% Angle theta2 with the norm

theta2norm = pi/2 - theta2;

% Convert angles to degrees

theta1_degree = radtodeg(theta1);

theta2_degree = radtodeg(theta2);

theta1norm_degree = radtodeg(theta1norm);

theta2norm_degree = radtodeg(theta2norm);

% Display the results

disp(['Theta1: ', num2str(theta1_degree), ' degrees']);

Theta1: 70.3367 degrees

disp(['Theta2: ', num2str(theta2_degree), ' degrees']);

Theta2: 70.3367 degrees

disp(['Theta1 from the norm: ', num2str(theta1norm_degree), ' degrees']);

Theta1 from the norm: 19.6633 degrees

disp(['Theta2 from the norm: ', num2str(theta2norm_degree), ' degrees']);

Theta2 from the norm: 19.6633 degrees

The functions dot and norm are used to calculate the dot product and the magnitude of the vectors, respectively, and acos computes the arccosine of the given value to obtain the angle in radians. The function radtodeg converts the angle from radians to degrees.

------------------------------------------------------------------------------------------------------------------------------------------------

If you find the solution helpful and it resolves your issue, it would be greatly appreciated if you could accept the answer. Also, leaving an upvote and a comment are also wonderful ways to provide feedback.

Professional Interests

  • Technical Services and Consulting
  • Embedded Systems | Firmware Developement | Simulations
  • Electrical and Electronics Engineering
0 Comments

Show -2 older commentsHide -2 older comments

Sign in to comment.

James Tursa on 4 Jan 2024

  • Link

    Direct link to this answer

    https://support.mathworks.com/matlabcentral/answers/2066481-calculate-angles-correctly-between-two-vectors-using-the-dot-product#answer_1383366

  • Link

    Direct link to this answer

    https://support.mathworks.com/matlabcentral/answers/2066481-calculate-angles-correctly-between-two-vectors-using-the-dot-product#answer_1383366

Edited: James Tursa on 4 Jan 2024

Also see this related link for a robust method using atan2 that can recover small angles:

https://www.mathworks.com/matlabcentral/answers/101590-how-can-i-determine-the-angle-between-two-vectors-in-matlab?s_tid=srchtitle

0 Comments

Show -2 older commentsHide -2 older comments

Sign in to comment.

Torsten on 4 Jan 2024

  • Link

    Direct link to this answer

    https://support.mathworks.com/matlabcentral/answers/2066481-calculate-angles-correctly-between-two-vectors-using-the-dot-product#answer_1383396

  • Link

    Direct link to this answer

    https://support.mathworks.com/matlabcentral/answers/2066481-calculate-angles-correctly-between-two-vectors-using-the-dot-product#answer_1383396

Open in MATLAB Online

I think an intuitive way is to compute the angles between the positive x-axis and the respective vector counterclockwise first (the result will be between 0 and 360) and then make the necessary subtractions.

theta1 = cart2pol(L(1)/norm(L),L(2)/norm(L))*180/pi

if theta1 <=0

theta1 = 360 + theta1;

end

theta2 = cart2pol(v1(1)/norm(v1),v1(2)/norm(v1))*180/pi

if theta2 <=0

theta2 = 360 + theta2;

end

theta3 = cart2pol(v2(1)/norm(v2),v2(2)/norm(v2))*180/pi

if theta3 <=0

theta3 = 360 + theta3;

end

0 Comments

Show -2 older commentsHide -2 older comments

Sign in to comment.

Sign in to answer this question.

See Also

Categories

MATLABProgramming

Find more on Programming in Help Center and File Exchange

Tags

  • matlab
  • vectors
  • dotproduct
  • angles
  • cosine

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

An Error Occurred

Unable to complete the action because of changes made to the page. Reload the page to see its updated state.


Calculate angles correctly between two vectors using the dot product. (15)

Select a Web Site

Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .

You can also select a web site from the following list

Americas

  • América Latina (Español)
  • Canada (English)
  • United States (English)

Europe

  • Belgium (English)
  • Denmark (English)
  • Deutschland (Deutsch)
  • España (Español)
  • Finland (English)
  • France (Français)
  • Ireland (English)
  • Italia (Italiano)
  • Luxembourg (English)
  • Netherlands (English)
  • Norway (English)
  • Österreich (Deutsch)
  • Portugal (English)
  • Sweden (English)
  • Switzerland
    • Deutsch
    • English
    • Français
  • United Kingdom(English)

Asia Pacific

  • Australia (English)
  • India (English)
  • New Zealand (English)
  • 中国
  • 日本Japanese (日本語)
  • 한국Korean (한국어)

Contact your local office

Calculate angles correctly between two vectors using the dot product. (2024)

FAQs

How to find angle between 2 vectors with dot product? ›

To find the angle between two vectors a and b, we can use the dot product formula: a · b = |a| |b| cos θ. If we solve this for θ, we get θ = cos-1 [ (a · b) / (|a| |b|) ].

How do you find the distance between two vectors using the dot product? ›

d=∥∥∥∥PQ ∥∥∥∥cosθ. Now, multiply both the numerator and the denominator of the right hand side of the equation by the magnitude of the normal vector ⃗ n : ⃗ ∥ ∥ n ⃗ ⁡ θ ∥ n ⃗ d=\frac { \left\| \vec { PQ } \right\| \left\| \vec { n } \right\| \cos\theta }{ \left\| \vec { n } \right\| }.

What is the answer when you take dot product between two vectors? ›

The dot product of two vectors is equal to the product of the magnitudes of the two vectors, and the cosine of the angle between them. i.e., the dot product of two vectors →a and →b is denoted by →a⋅→b a → ⋅ b → and is defined as |→a||→b| | a → | | b → | cos θ.

What is the dot product of two vectors at right angles? ›

When two vectors are at right angles to each other the dot product is zero.

What is the formula for the dot product of two vectors? ›

The dot product of two vectors is given by the formula →a. →b=|a||b|cos(θ) a → . b → = | a | | b | cos ⁡ The dot product of two vectors is a scalar and lies in the plane of the two vectors.

At what angle between the two vectors will the dot product be a maximum? ›

Now, it is easy to see that if the two vectors have identical directions, then the angle between the vectors is 0, so the dot product will be a maximum.

What is the rule for dot product? ›

Dot Product of Vectors

The scalar product of two vectors a and b of magnitude |a| and |b| is given as |a||b| cos θ, where θ represents the angle between the vectors a and b taken in the direction of the vectors.

What is the dot product of two vectors coordinates? ›

Dot Product in Cartesian Coordinates

In other words, the product of two vectors in Cartesian coordinates is simply the sum of the product of each of the corresponding components of the two vectors. The same applies to vectors in more than two dimensions.

What is the formula for the dot product of a unit vector? ›

The dot product between a unit vector and itself is also simple to compute. In this case, the angle is zero and cosθ=1. Given that the vectors are all of length one, the dot products are i⋅i=j⋅j=k⋅k=1.

How to calculate angle between two vectors? ›

Angles Between Two Vectors in Two-Dimensions

Let the angle between them be θ. Let us first find the dot product of the two vectors: a · b = <1, -2> ·<-2, 1> = 1(-2) + (-2)(1) = -2 – 2 = -4. So, θ≈36.87 or, 180 – 36.87.

What does the dot product of two vectors tell us? ›

The dot product, also called scalar product, is a measure of how closely two vectors align, in terms of the directions they point. The measure is a scalar number (single value) that can be used to compare the two vectors and to understand the impact of repositioning one or both of them.

What is the cross dot product of two vectors? ›

Dot and Cross Product

a⋅b = |a| |b| cos θ, where θ is the angle between the vectors. a×b = |a| |b| sin θ n̂, where θ is the angle between the vectors, and n̂ is a unit vector perpendicular to the plane containing a and b. Two vectors are orthogonal if their dot product is zero.

How do you find the dot product and angle between two vectors? ›

To calculate the dot product, multiply the same direction coordinates of each vector and add the results together. Then, find each vector's magnitude using the Pythagorean Theorem, or √(u12 + u22). Plug the arccos, dot product, and magnitudes into a calculator to get the angle.

How to calculate work using dot product? ›

The work done by a constant force ⃑ 𝐹 over a displacement ⃑ 𝑑 is equal to the dot product of ⃑ 𝐹 and ⃑ 𝑑 , 𝑊 = ⃑ 𝐹 ⋅ ⃑ 𝑑 , or 𝑊 = ‖ ‖ ⃑ 𝐹 ‖ ‖ ‖ ‖ ⃑ 𝑑 ‖ ‖ ( 𝜃 ) , c o s where 𝜃 is the angle between ⃑ 𝐹 and ⃑ 𝑑 .

How to show that two vectors are right angle to each other? ›

Two vectors →A and →B are at right angles to each other when:
  1. →A+→B=0.
  2. →A−→B=0.
  3. →A×→B=0.
  4. →A. →B=0.
Jan 9, 2020

What is the angle between two vectors given that the dot product of the two vectors is zero? ›

⇒ θ = 90∘

What is the angle of the dot product of unit vectors? ›

The dot product of two unit vectors is the cosine of the angle between them. If they point in the same direction (i.e., they're the same vector), then that angle is 0, and their dot product is 1. If they're orthogonal (i.e., perpendicular), then that angle is 90°, and their dot product is 0.

Does dot product give angle in radians? ›

The dot product enables us to find the angle θ between two nonzero vectors x and y in R 2 or R 3 that begin at the same initial point. There are actually two angles formed by the vectors x and y, but we always choose the angle θ between two vectors to be the one measuring between 0 and π radians, inclusive.

Is the dot product of two vectors an angle a vector or a scalar? ›

The dot product, also called scalar product, is a measure of how closely two vectors align, in terms of the directions they point. The measure is a scalar number (single value) that can be used to compare the two vectors and to understand the impact of repositioning one or both of them.

References

Top Articles
Latest Posts
Recommended Articles
Article information

Author: Manual Maggio

Last Updated:

Views: 5883

Rating: 4.9 / 5 (49 voted)

Reviews: 88% of readers found this page helpful

Author information

Name: Manual Maggio

Birthday: 1998-01-20

Address: 359 Kelvin Stream, Lake Eldonview, MT 33517-1242

Phone: +577037762465

Job: Product Hospitality Supervisor

Hobby: Gardening, Web surfing, Video gaming, Amateur radio, Flag Football, Reading, Table tennis

Introduction: My name is Manual Maggio, I am a thankful, tender, adventurous, delightful, fantastic, proud, graceful person who loves writing and wants to share my knowledge and understanding with you.