2

matlabで最も近い整数に丸めずに実数から整数を切り捨てるのを手伝ってください。たとえば、255/64 = 3.98の場合、4ではなく3だけが必要です。私のタラは:

S=imread('image0286.jpg')/64; 
   disp(fix(S);

これにより、 S の要素を最も近い整数に丸めた後、整数を切り取らずに出力が得られます。

4

2 に答える 2

4

fixあなたが望むことをします。

>>fix(255/64)
    ans =
          3

コードの他の部分が、あなたが思っていることをしていない可能性があります。より多くのコードと、期待される実際の出力を投稿できますか

編集: Imread は値を uint8 として返します。このクラスの除算は、不要な丸めを実行するようです。分割する前に double にリキャストしてみてください

S = double(imread('image0286.jpg'))/64
于 2010-08-22T10:43:11.770 に答える
0

floor(x)ただし、負の数に注意してください。

しかし、fixあまりにも動作するはずです。

また、フロートではなく配列または配列をimread返す場合があることに注意してください。そのため、あなたの部門は int-division である可能性があり、orを必要とせずに自動的に切り捨てられます。byteintfixfloor

于 2010-08-22T11:13:56.703 に答える