MATLAB Answers

Vector between vectors in intervals

1 view (last 30 days)
Arnd Meiser
Arnd Meiser on 3 Dec 2019
Answered: Jan on 4 Dec 2019
I have two orthogonal vectors in a 3d system: [-0.0345;0.9984;-0.0447] and [0.9838;0.0370;0.0431]. I know that by adding the two I can obtain the middle vector, so the one with 45° to both other vectors. What I want is all the other possible angles in intervals, like from the first vector to the second in steps of 5° (5° to the first, 85° to the second etc.). Any ideas?
Thanks in advance

Accepted Answer

J Chen
J Chen on 3 Dec 2019
vec1 = [-0.0345;0.9984;-0.0447];
angle = 5*pi/180; % angle of rotation in rad
v = vec1 + tan(angle)*vec2; % length of vec1 is 1
v = v/norm(v); % v is an unit vector 5 degrees from vec1
  1 Comment
Arnd Meiser
Arnd Meiser on 4 Dec 2019
That works perfectly, thank you very much!

Sign in to comment.

More Answers (1)

Jan on 4 Dec 2019
Remark: The inputs vectors are not normalized and only almost orthogonal:
format long g
v1 = [-0.0345; 0.9984; -0.0447]
v2 = [0.9838; 0.0370; 0.0431]
norm(v1) % 0.9999954499896486 almost
norm(v2) % 0.9854385064528379
dot(v1, v2) % 0.001073129999999994 almost
I assume, you've posted the values with a limited number of digits. Use format long g to display more digits.

Community Treasure Hunt

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

Start Hunting!