下一个大于但不等于输入的整数

Next integer greater than but not equal to input

是否有类似于 ceil 的 (Matlab) 函数来查找下一个大于输入但 不等于 输入的整数?

示例:

1.1 --> 2
1.9 --> 2
2.0 --> 3    (note that ceil(2) == 2)
2.1 --> 3

我试过 ceil(x+eps),但这只适用于小数字:

>> ceil((-4:4)+eps)

ans =

-4    -3    -1     0     1     2     2     3     4

此外,floor 的任何等价物?

对于正数 x:

floor(x)+1

没有例子,第二个问题有点模棱两可,但这可能是你要找的:

ceil(x)-1

如果你想同样对待负值和正值,例如 1.1 变成 2-1.1 变成 1,那么 using floor 是正确的:

out = floor(x)+1;

如果您希望正值成为第二大正整数,但负值成为第二大整数,那么您可以使用fix and sign 像这样:

out = fix(x)+sign(x);

例如:

>> x = [-2.1 -2.0 -1.9 -1.1 0 1.1 1.9 2.0 2.1]

x =
   -2.1000   -2.0000   -1.9000   -1.1000         0    1.1000    1.9000    2.0000    2.1000

>> out = fix(x)+sign(x)

out =
    -3    -3    -2    -2     0     2     2     3     3