为什么要将Matlab枚举强制转换为int32?

Ale*_* L. 5 matlab enumeration casting

今天,我进入了以下代码片段:

classdef (Enumeration,Sealed) ClassBlabla < int8
    enumeration
        ALPHA(0)
        BETA(1)
        GAMMA(2)
    end

    methods (static)
        function ret = doSomething()
            ret = containers.Map(.......)
            for i = int32(ClassBlabla.ALPHA):int32(ClassBlabla.GAMMA)
                ret(i) = somethingelse(blablabla(i))
            end
         end
    end
end
Run Code Online (Sandbox Code Playgroud)

for中的int32(...)是什么?演员?为什么要转换为int32?ALPHA已经不是0,GAMMA已经是2吗?

And*_*nke 2

它将 ALPHA 和 GAMMA 值从 扩大int8int32。最有可能的是,这是因为blablabla()函数需要int32输入,或者ret值需要有int32键。ALPHA 和 GAMMA 已经是 0 和 2,但它们int8代替int32、 和blablabla()或 的客户端doSomething()可能无法很好地处理int8这些值。(你可以看出 ALPHA 和 GAMMA 是int8因为ClasBlabla < int8顶部的。)