matlab - 函数strel输入类型错误

matlab - function strel input type error

当我尝试 se = strel('square', 2.4); 时,出现此错误:

??? Error using ==> iptcheckinput
Function STREL expected its second input, SIZE, to be integer-valued.

Error in ==> strel>ParseInputs at 1154
        iptcheckinput(M, {'double'}, {'scalar' 'integer' 'real' 'nonnegative'}, ...

Error in ==> strel>strel.strel at 146
                [type,params] = ParseInputs(varargin{:});

于是,我把输入值2.4改成了int8(2.4),又出现了一个错误:

??? Error using ==> iptcheckinput
Function STREL expected its second input, SIZE,
to be one of these types:

  double

Instead its type was int8.

Error in ==> strel>ParseInputs at 1154
        iptcheckinput(M, {'double'}, {'scalar' 'integer' 'real' 'nonnegative'}, ...

Error in ==> strel>strel.strel at 146
                [type,params] = ParseInputs(varargin{:});

我认为2.4是double类型而int8(2.4)是整数,对吧?

所以我无法理解那些错误。

我希望 strel('square', 2.4) 成为 strel('square', 2)

我该怎么办?这个错误是什么意思?

要将2.4更改为2,您可以使用fix函数。例如:

fix(2.4) == 2 // true

所以,编写如下代码:

 strel('square', fix(2.4))