Octave 用数字数组四舍五入到最近的偶数

Octave 用数字数组四舍五入到最近的偶数,octave,Octave,我的函数和舍入到最近的偶数 function y = rndeven(x) if x<=1 y=2; else y = 2*floor(x); end endfunction 我想要得到的结果: 0 2 1 2 2 2 3 4 可以使用模2来确定一个数是否为偶数。如果不是,则

我的函数和舍入到最近的偶数

function y = rndeven(x)
    if x<=1
      y=2;
    else  
      y = 2*floor(x);
    end

endfunction
我想要得到的结果:

0                     2
1                     2
2                     2
3                     4

可以使用模2来确定一个数是否为偶数。如果不是,则返回1,因此只需将1添加到此数字,即可找到最近(更大)的偶数:

function y = rndeven(x)
    x = floor(x);
    x(x <= 1) = 2;
    y = mod(x,2)+x;
end
函数y=rndeven(x)
x=楼层(x);

x(x您可以使用模2来确定一个数字是否为偶数。如果不是偶数,则返回1,因此只需在该数字上加1即可找到最近的(较大的)偶数:

function y = rndeven(x)
    x = floor(x);
    x(x <= 1) = 2;
    y = mod(x,2)+x;
end
函数y=rndeven(x)
x=楼层(x);

如果你不想使用mod函数,你也可以检查它是否可以除以2

而(x%2!=0)x=x+1


返回x

如果不想使用mod函数,还可以检查它是否可以除以2。伪代码如下:

而(x%2!=0)x=x+1


返回x

为什么
0
不是偶数?另外,从和的标记信息中,“不要同时使用[matlab]和[octave]标记,除非问题是关于两者之间的相似性或差异。”你的输入会有负整数吗?如果是,你想把它们四舍五入到哪个方向?3比2更接近4?为什么
0
不是偶数?另外,从两个和的标记信息来看,“不要同时使用[matlab]和[octave]标记,除非问题是明确的关于两者之间的相似性或差异。”你的输入会有负整数吗?如果是,你想把它们四舍五入到哪个方向?3比2更接近4?为什么
x%2
不使用
mod
函数?因为它使用了模运算符(在Matlab中不存在)?为什么
x%2
不使用
mod
函数?因为它使用了模运算符(在Matlab中不存在)?