是否有一个(Matlab)函数类似于ceil查找下一个大于输入但不等于输入的整数?
例子:
1.1 --> 2
1.9 --> 2
2.0 --> 3 (note that ceil(2) == 2)
2.1 --> 3
Run Code Online (Sandbox Code Playgroud)
我尝试过ceil(x+eps),但这只适用于少量:
>> ceil((-4:4)+eps)
ans =
-4 -3 -1 0 1 2 2 3 4
Run Code Online (Sandbox Code Playgroud)
另外,任何等效项floor?
如果您想以同样的方式对待负值和正值,例如1.1变为2和-1.1变为1,那么使用信息得到的答案floor是正确的:
out = floor(x)+1;
Run Code Online (Sandbox Code Playgroud)
如果您希望正值成为下一个最正整数,但负值成为下一个最负整数,那么您可以使用fix和 ,sign如下所示:
out = fix(x)+sign(x);
Run Code Online (Sandbox Code Playgroud)
例如:
>> 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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
174 次 |
| 最近记录: |