Matlab circshift - Matlab是向上还是向下舍入?

时间:2016-01-19 09:32:02

标签: matlab

当我这样做时

circshift(image(k,:), [0 Naz/2-5]);

当Naz / 2-5不是圆数时,例如74.5

Matlab做了什么?

我知道为函数提供非整数是不正确的,但我遇到了它,并且很想知道Matlab的作用。

它是74还是75?

感谢。

1 个答案:

答案 0 :(得分:1)

为什么不直接手动测试?

A = circshift( 1:100, [0 74] );
B = circshift( 1:100, [0 75] );
C = circshift( 1:100, [0 74.5] );

if( isequal( A, C ) )
    display('A and C are equal -> MATLAB rounds down');
elseif( isequal( A, B ) )
    display('B and C are equal -> MATLAB rounds up');
else
    error('Unexpected behaviour');
end

我也无法测试它,因为我使用的是R2015b:

Error using circshift Invalid shift type: must be a real finite integer vector.

提示:使用“斜坡”功能(从1到n的升序)快速检查结果。