matlab 舍入到最接近的奇数倍

eeq64g8w  于 2022-12-13  发布在  Matlab
关注(0)|答案(1)|浏览(182)

有没有MATLAB函数可以四舍五入到最接近的奇数倍?2例如,如果x = 1.1,数字是0.5,那么x应该四舍五入到1.5
我可以用一个函数来四舍五入到最接近的倍数而不是最接近的奇数倍

x = round(x*(1/number))/(1/number);
wb1gzix0

wb1gzix01#

您需要修改方法,如下所示:

  • 使用两次步进,即2*number;
  • 将输入移动新步长的一半;
  • 撤消输出中的移位。
y = round((x/(2*number)-.5))*(2*number)+number;

示例:

number = 2.5;
x = [-10:.01:10];
y = round((x/(2*number)-.5))*(2*number)+number;
plot(x,y)
grid on, axis equal, axis([-15 15 -12.5 12.5])

相关问题