我有伺服电机只能从0到180旋转,并且我的角度范围是-180到180,以发送到伺服,我如何在这两个范围之间进行归一化?如果有任何MATLAB函数可以做到这一点?谢谢
您可以添加180并除以2,如@High Performance Mark针对您的特定问题所建议的,或者这是基于本文的广义版本。
这个方程式适用于任何限制
我已经根据等式编写了一个简单的函数:
function [out] = normalizeLim( A,oldL,oldR,newL,newR )
out = newL*(1-((A-oldL)./(oldR-oldL))) + newR*((A-oldL)./(oldR-oldL));
end
例子:
x = randi([-180,180],1,8); %// Generating a random vector within the range -180 to 180
>> x
x =
-153 -161 11 101 157 -134 25 -11
>> normalizeLim(x,-180,180,0,180) %// Specifying old and new required limits
ans =
13.5000 9.5000 95.5000 140.5000 168.5000 23.0000 102.5000 84.5000
如果希望它们为整数,则可以使用round
函数将它们取整
希望这可以帮助!!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句