您可以通过创建MATLAB来定义可以通过名称引用的常量®定义常量属性的类。
使用常量属性定义可以按名称访问的常量值。通过声明,创建具有常量属性的类持续的
属性块中的属性。设置持续的
属性意味着,一旦初始化为属性块中指定的值,就无法更改值。
将任何值分配给a持续的
属性,包括Matlab表达式。例如:
Classdef.namedconst.特性(常量)r = pi / 180 d = 1 / namedconst.r acccode ='0145968740001110202npq'rn = rand(5)结尾结尾
加载类时,MATLAB评估表达式。因此,MATLAB值分配给rn.
是单一呼叫的结果兰特
功能,随后的引用没有改变namedconst.rn.
。打电话清除
班级
导致MATLAB重新加载类并重新初始化常量属性。
使用类名和属性名称引用常量:
班级名称。Propname.
例如,使用namedconst.
上一节中定义的类,参考常量到越弧度转换,R.
:
Radi = 45 * namedconst.r
Radi = 0.7854.
要为可以按名称访问的常量值创建库,首先创建包文件夹,然后定义各种类来组织常量。例如,实现一组用于制作天文计算的常量,定义a星形电动机
课程中的课程常数
:
+Constants/@astroconstants/astroconstants.m.
该类定义了一组持续的
具有分配值的属性:
Classdef.星形电动机特性(常数)C = 2.99792458E8% 多发性硬化症g = 6.67259.%m / kgs我= 5.976e24.%地球质量(kg)重新= 6.378e6.%地球半径(m)结尾结尾
要使用这组常量,请使用完全限定的类名引用它们。例如,以下函数使用其中定义的一些常量星形间
:
功能e = lequenttoorbit(m,r)e = constantants.astronconstants.g * constantants.astroconstants.me * m *......(1 / constantants.astroconstants.re-0.5 * r);结尾
将包导入函数无需重复包名称(参见进口
):
功能E = EnergyToorbit(M,R)导入常数。*;E = AstroConstants.g * AstroConstants.me * M *......(1 / AstroConstants.re - 0.5 * r);结尾
如果类定义具有句柄对象的值的常量属性,则可以将值分配给句柄对象属性。要访问句柄对象,请创建一个本地变量。
例如,Constmapclass.
类定义了一个常量属性。常量属性的值是句柄对象(a容器.map.
目的)。
Classdef.constmapclass特性(常量)constmapprop = containers.map结尾结尾
将当前日期分配给日期
键,从常量属性返回句柄,然后使用赋值语句左侧的局部变量进行分配:
localmap = constmapclass.constmappop localmap('日期')= DATSTR(时钟);
您无法在赋值语句的左侧使用引用对常量属性。例如,Matlab将以下语句解释为创建a塑造
命名为Constmapclass.
与一个领域Constmapprop.
:
constmapclass.constmapprop('date')= datestr(clock);
您可以将定义类的实例分配给常量属性。MATLAB在加载类时创建分配给常量属性的实例。仅在定义类是一个时使用此技术处理
班级。
这我的项目
是这样一个类的一个例子:
Classdef.myproject特性(常量)projectinfo = myproject结尾特性日期部门ProjectNumber.结尾方法(访问=私人)功能obj = myproject obj.date = datestr(clock);obj.department =.'工程';obj.projectnumber ='p29.367';结尾结尾结尾
通过该参考属性数据持续的
财产:
myproject.projectinfo.date.
ANS = 18-APR-2002 09:56:59
因为我的项目
是一个句柄类,可以将句柄置于分配给常量属性的实例:
p = myproject.projectInfo;
访问数据我的项目
使用此句柄的类:
P.Department.
ans =工程
修改了不正常的属性我的项目
使用此句柄的类:
P.Department =.'质量保证';
P.
是一个对实例的句柄我的项目
已分配给了ProjectInfo.
持续财产:
myproject.projectinfo.department.
ANS =质量保证
清除类结果在分配新实例中我的项目
到了ProjectInfo.
财产。
清除我的项目myproject.projectinfo.department.
ans =工程
您可以将定义类的实例分配为只有在声明为属性的默认值持续的
常量属性不支持属性金宝app预先
要么期刊
事件。如果您设置了,MATLAB在类初始化期间发出警告getobservable.
A的属性持续的
财产真的
。