Простое решение - преобразовать эти углы в набор векторов из полярных координат в декартовы координаты.
Поскольку вы работаете с цветами, думайте об этом как о преобразовании в плоскость (a *, b *). Затем возьмите среднее значение этих координат и снова вернитесь к полярной форме. Сделано в Matlab,
theta = [355,5,5,5,5];
x = cosd(theta); % cosine in terms of degrees
y = sind(theta); % sine with a degree argument
Теперь возьмите среднее значение x и y, вычислите угол, а затем преобразуйте его обратно из радиан в градусы.
meanangle = atan2(mean(y),mean(x))*180/pi
meanangle =
3.0049
Конечно, это решение справедливо только для среднего угла. Как вы можете видеть, он дает согласованный результат со средним значением углов напрямую, где я понимаю, что 355 градусов на самом деле превращаются в -5 градусов.
mean([-5 5 5 5 5])
ans =
3
Чтобы вычислить стандартное отклонение, проще всего сделать это как
std([-5 5 5 5 5])
ans =
4.4721
Да, это требует от меня явного обертывания.
person
Community
schedule
17.11.2011