2013-02-14 2 views
4

오늘은이 코드에 들어갔다 :왜 matlab 열거 형을 int32로 변환하려고합니까?

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 

의에서 그 INT32 (...) 무엇입니까? 캐스트? 왜 int32로 캐스팅해야합니까? ALPHA가 이미 0이 아니고 GAMMA가 이미 2가 아닙니까?

답변

2

int8에서 int32으로 알파 값과 감마 값을 넓히는 것이 좋습니다. 대부분 blablabla() 함수에 int32 입력이 필요하거나 ret 값에 int32 키가 있어야하기 때문일 가능성이 큽니다. 알파와 감마는 이미 0과 2이지만 int32 대신 int8이고 blablabla() 인 클라이언트 또는 doSomething()의 클라이언트가 int8 값으로 잘 재생되지 않을 수 있습니다. (상단에 ClasBlabla < int8이 있기 때문에 ALPHA 및 GAMMA는 int8입니다.)

관련 문제