У меня есть два координатных вектора:
coor1 = [4 2];
coor2 = [4.3589 1];
и я хочу найти угол поворота, где математически он определяется уравнением:
где числитель — это перекрестное произведение двух пар координат, а знаменатель — скалярное произведение.
Проблема в том, что в MATLAB перекрестное произведение невозможно с двухэлементными векторами. Выполнение следующего кода:
ang = atan2(norm(cross(coor1,coor2)),dot(coor1,coor2));
выдает эту ошибку:
Error using cross
A and B must be of length 3 in the dimension in which the cross product is taken.
Есть ли способ заставить cross
работать? Проработав это вручную, угол поворота обеих координат должен быть 13.6441
.
rad2deg(atan2(coor2(2)*coor1(1)-coor2(1)*coor1(2), dot(coor1,coor2)))
? - person avermaet   schedule 11.09.2019rad2deg(atan2(...))
не нужен, вместо этого можно просто использоватьatan2d
. - person Dev-iL   schedule 11.09.2019