2017-07-20 11 views
2

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のための任意の等価の?

答えて

4

負の値と正の値を同じように扱いたいので、1.12となり、-1.11となりますthe answer from informatonエンfloorを使用することは正しいです:

out = floor(x)+1; 

あなたはかなりあるだろう場合は正の値は、次の最も正の整数となりますが、負の値は、次の最も整数、その​​後、あなたが使用することができなっfixsignそのような例:

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 
3

正の数xについて:

floor(x)+1

2番目の質問は、例なしで少しあいまいですが、これはあなたが探しているものかもしれ:あなたの場合は

ceil(x)-1

関連する問題