为什么我要将matlab枚举转换为int32?

时间:2013-02-14 15:30:00

标签: matlab casting enumeration

今天我介入了这段代码:

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

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

1 个答案:

答案 0 :(得分:2)

int8的ALPHA和GAMMA值扩展为int32。最有可能的原因是,blablabla()函数需要int32输入,或者ret值需要int32个键。 ALPHA和GAMMA已经是0和2,但它们是int8而不是int32,而blablabla()doSomething()的客户可能无法与int8值一起使用。 (由于顶部有int8,您可以告诉ALPHA和GAMMA ClasBlabla < int8。)