通过创建MATLAB,您可以定义可以按名称引用的常量®定义常量属性的类。
使用常量属性来定义可以按名称访问的常量值。属性创建一个具有常量属性的类常数
属性块中的。设置常数
属性意味着,一旦初始化为属性块中指定的值,该值就不能更改。
给a赋任何值常数
性质,包括MATLAB表达式。例如:
classdefNamedConst属性(常数)R = pi/180 D = 1/NamedConst。R AccCode =“0145968740001110202 npq”RN =兰德(5)结束结束
MATLAB在加载类时计算表达式。因此,MATLAB赋值给RN
是单个呼叫的结果兰德
函数,且不随后续引用而更改NamedConst。RN
.调用清晰的
类
使MATLAB重新加载类并重新初始化常量属性。
使用类名和属性名引用常量:
类名称.PropName
例如,使用NamedConst
类,引用度到弧度转换的常数,R
:
x射线检验= 45 * NamedConst。R
x射线检验= 0.7854
要为可以按名称访问的常量值创建库,首先创建一个包文件夹,然后定义各种类来组织这些常量。例如,要实现一组用于进行天文计算的常数,定义一个AstroConstants
调用的包中的常量
:
/ @AstroConstants / AstroConstants.m +常量
类定义了一组常数
已赋值的属性:
classdefAstroConstants属性C = 2.99792458e8% m / sG = 6.67259% m /公斤我= 5.976 e24%地球质量(kg)Re = 6.378 e6%地球半径(m)结束结束
要使用这组常量,请使用完全限定的类名引用它们。例如,下面的函数使用中定义的一些常量AstroContants
:
函数E = energyToOrbit(m,r) E =常数。astroconstants . g *常数。astroconstants . me * m *...(1 / constants.astroconstants.re - 0.5 * r);结束
将包导入到函数中就不需要重复包名(参见进口
):
函数E = energyToOrbit(m,r) import常数。*;E = AstroConstants。G * AstroConstants。我* m *...(1 / AstroConstants。Re - 0.5 * r);结束
如果类用句柄对象的值定义常量属性,则可以为句柄对象属性赋值。要访问句柄对象,请创建一个局部变量。
例如,ConstMapClass
类定义了常量属性。常量属性的值是一个句柄对象(a容器。地图
对象)。
classdefConstMapClass <处理属性(常量)conmapprop =容器。地图结束结束
将当前日期分配给日期
键,从常量属性返回句柄,然后使用赋值语句左边的局部变量进行赋值:
localMap = ConstMapClass。ConstMapProp localMap (“日期”) = datestr(时钟);
不能在赋值语句的左侧使用对常量属性的引用。例如,MATLAB将下面的语句解释为创建一个结构体
命名ConstMapClass
与一个字段ConstMapProp
:
ConstMapClass.ConstMapProp(“日期”)= datestr(时钟);
您可以将定义类的实例指派给常量属性。MATLAB在加载类时创建赋值给常量属性的实例。仅当定义的类是处理
类。
的MyProject
是这样一个类的例子:
classdefMyProject <处理属性(常量)ProjectInfo = MyProject结束属性部门ProjectNumber日期结束方法(访问=私人)函数obj = MyProject日期= datestr(clock); obj.Department =“工程”;obj。ProjectNumber =“P29.367”;结束结束结束
属性引用属性数据常数
属性:
MyProject.ProjectInfo.Date
ans = 18-Apr-2002 09:56:59
因为MyProject
是一个句柄类,你可以获得分配给常量属性的实例的句柄:
p = MyProject.ProjectInfo;
中的数据访问MyProject
使用此句柄初始化:
p.Department
ans =工程
属性的非常量属性MyProject
使用此句柄初始化:
p.Department =“质量保证”;
p
的实例的句柄MyProject
分配给ProjectInfo
不变的属性:
MyProject.ProjectInfo.Department
ans =质量保证
的新实例的赋值MyProject
到ProjectInfo
财产。
清晰的MyProjectMyProject.ProjectInfo.Department
ans =工程
只有当属性声明为属性时,才能将定义类的实例指定为属性的默认值常数
常量属性不支持属性万博1manbetxPreGet
或PostGet
事件。在类初始化期间,如果设置GetObservable
属性的常数
财产真正的
.