2016-09-28 3 views
0

Matlab에서 가능한 값이 1 개가 될 수있는 데이터 유형을 정의하고 싶습니다. C에서이 작업을 수행하는 경우 다음을 수행합니다.Matlab의 열거 형에 해당합니다.

typedef enum 
{ 
    TYPE1, 
    TYPE2, 
    TYPE3, 
} new_type_t; 

new_type_t variable = TYPE1; 

어떻게하면 Matlab에서 비슷한 결과를 얻을 수 있습니까?

이상적으로는 열거 형에 제한된 속성으로 Matlab 클래스를 갖고 싶습니다. matlab에 코드에서

내 시도 :

classdef Node 
    classdef BoundaryTypes 
     enumeration 
      adiabatic 
      convective 
      conductive 
     end 
    end 
    properties 
     k 
     c_p 
     rho 
     BC %type of boundary condition 
    end 

end 

답변

2

으로이 문서에서 설명, 당신은 enumerator class을 정의 할 수 있습니다.

classdef WeekDays 
    enumeration 
     Monday, Tuesday, Wednesday, Thursday, Friday 
    end 
end 
+0

내가 원하는 경우 어떻게 :

당신이 이전 버전을 사용하는 경우
classdef Node properties k c_p rho BC BoundaryType end end 

, 당신은 속성의 클래스를 제한하는 set 방법을 구현할 수 있습니다 Matlab 클래스의 속성을 일부 열거 자 클래스로 제한하려면? 그렇게하는 것이 어떻습니까? – Hefaestion

+0

@Hefaestion 정확히 원하는지 확실하지 않지만, 일반적으로 나는 당신이 문서 'SyntaxColors의 읽기 전용 속성'R '을 설정할 수 없다는 부분에서 상호 작용할 수 있다고 생각합니다.' –

1
당신은 당신의 경계 유형에 대한 열거 클래스를 정의하여 시작할 것

: 당신의 클래스를 제한하고자하는 경우

classdef Node 
    properties 
     k 
     c_p 
     rho 
     BC 
    end 
end 

: 그럼 당신은 당신의 노드 클래스를 구성 할

classdef BoundaryConditionType 
    enumeration 
     adiabatic 
     convective 
     conductive 
    end 
end 

BC에는 두 가지 방법이 있습니다. 첫 번째는 이후 R2016a에서 작동합니다 :

classdef Node 
    properties 
     k 
     c_p 
     rho 
     BC 
    end 
    methods 
     function obj = set.BC(obj, val) 
      assert(isa(val,'BoundaryConditionType')) 
      obj.BC = val; 
     end 
    end 
end 
관련 문제