我的伺服电机只能从0转到180 我的角度范围从-180到180发送到伺服 我怎样才能在这两个范围之间进行标准化? 如果有任何MATLAB函数可以做到这一点? 感谢
答案 0 :(得分:2)
你可以添加180并除以2,因为@High Performance Mark会针对您的具体问题建议,或者这是基于This帖子的广义版本。
此等式适用于任何限制
我根据等式编写了一个简单的函数:
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
函数
希望这会有所帮助!!