是否存在类似于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
的任何等效内容?
答案 0 :(得分:4)
如果您想要同等对待负值和正值,1.1
变为2
而-1.1
变为1
,则the answer from informaton使用floor
是正确的:
out = floor(x)+1;
如果你想让正值成为下一个最正整数,但负值成为下一个负整数,那么你可以使用fix
和{ {3}}喜欢这样:
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
答案 1 :(得分:3)
对于正数x:
floor(x)+1
第二个问题在没有示例的情况下有点含糊不清,但这可能是您正在寻找的内容:
ceil(x)-1