Matlab中枚举类型的等价性
我想在Matlab中定义一个数据类型,它可以是3个可能值中的1个。如果我在C中这样做,我将执行以下操作:Matlab中枚举类型的等价性,matlab,enums,Matlab,Enums,我想在Matlab中定义一个数据类型,它可以是3个可能值中的1个。如果我在C中这样做,我将执行以下操作: typedef enum { TYPE1, TYPE2, TYPE3, } new_type_t; new_type_t variable = TYPE1; 如何在Matlab中实现类似的功能 理想情况下,我希望有一个Matlab类,其属性限制为某种枚举类型 我尝试使用Matlab代码: classdef Node classdef BoundaryTyp
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
如文档中所述,您可以定义
如文档中所述,您可以定义
首先为边界类型定义枚举类:
classdef BoundaryConditionType
enumeration
adiabatic
convective
conductive
end
end
然后构建节点类:
classdef Node
properties
k
c_p
rho
BC
end
end
如果要限制BC
的类别,有两种方法。第一个仅适用于R2016a以后的版本:
classdef Node
properties
k
c_p
rho
BC BoundaryType
end
end
如果使用的是旧版本,则可以实现一个set
方法来限制属性的类别:
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
首先为边界类型定义枚举类:
classdef BoundaryConditionType
enumeration
adiabatic
convective
conductive
end
end
然后构建节点类:
classdef Node
properties
k
c_p
rho
BC
end
end
如果要限制BC
的类别,有两种方法。第一个仅适用于R2016a以后的版本:
classdef Node
properties
k
c_p
rho
BC BoundaryType
end
end
如果使用的是旧版本,则可以实现一个set
方法来限制属性的类别:
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
如果我想将Matlab类的属性限制为某个枚举器类,该怎么办?你建议怎么做?@Hefaestion不确定你到底想要什么,但总的来说,我认为你可能对上面文档中的“你不能设置SyntaxColor的只读属性‘R’”部分感兴趣。如果我想将Matlab类的属性限制为某个枚举器类,该怎么办?您建议怎么做?@Hefaestion不确定您到底想要什么,但总的来说,我认为您可能对上述文档中的“您不能设置SyntaxColor的只读属性“R”部分感兴趣。”