我的函数并四舍五入到最接近的偶数
function y = rndeven(x)
if x<=1
y=2;
else
y = 2*floor(x);
end
endfunction
当我运行它时,我得到:
cc=[0:3]'
both=[cc,rndeven(cc)]
0 0
1 2
2 4
3 6
我想要得到的结果:
0 2
1 2
2 2
3 4
答案 0 :(得分:3)
您可以使用模2来查找数字是否为偶数。如果不是,它将返回1,因此只需在此数字上加1即可找到最接近(较大)的偶数:
function y = rndeven(x)
x = floor(x);
x(x <= 1) = 2;
y = mod(x,2)+x;
end
这适用于任何数组,元素的顺序无关紧要。
答案 1 :(得分:-1)
如果您不想使用mod函数,也可以检查它是否可以被2整除。伪代码将是这样的:
while(x%2!= 0)x = x + 1
返回x