我有两个角度a和b,我想计算它们之间的绝对差。例如:
>> absDiffDeg(360,5)
ans = 5
>> absDiffDeg(-5,5)
ans = 10
>> absDiffDeg(5,-5)
ans = 10
我有两个角度a和b,我想计算它们之间的绝对差。例如:
>> absDiffDeg(360,5)
ans = 5
>> absDiffDeg(-5,5)
ans = 10
>> absDiffDeg(5,-5)
ans = 10
normDeg = mod(a-b,360);
absDiffDeg = min(360-normDeg, normDeg);
absDiffDeg = @(a,b) abs(diff(unwrap([a,b]/180*pi)*180/pi));
您好,
在进行角度计算时,首先将它们标准化非常有用。这个函数将所有的角度标准化到 (-180,180] 范围内:
normalizeDeg=@(x)(-mod(-x+180,360)+180)
absDiffDeg=@(a,b)abs(normalizeDeg(normalizeDeg(a)-normalizeDeg(b)))
normalizeDeg=@(x)(mod(x,360))
这样做不太标准,但也解决了问题。 - Trogdor