如何更新依赖属性

6次观点(过去30天)
胺lahemeri
胺lahemeri 2021年7月10日
回答: Cam Salzberger. 2021年7月12日
我有一个名为battery_level的依赖属性,它是基于其他属性计算的(用get方法做​​了)
但随后我需要递增其值(每次时隙),问题是我需要一个集合方法来分配其值。还基于其他属性计算我要更新诸如更新的值。有可能这样做吗?
Classdef.UAV <句柄
特性
ID{mustbenumeric}%UAV标识符
地点
马赫{mustbenumeric}%电池毫安小时
名称_Voltage.%电池伏特的标称电压
Battery_weight.kg中的%电池重量
重量%UAV重量在kg中
状态
数据= 0.%收获数据以字节为单位
名称_velocity = 5百分之百秒内的%速度
速度= 0.米百分之速度速度速度速度
结尾
特性(依赖)
Battery_Level.焦耳电池容量%
总重量kg中的%免维重量
结尾
方法
功能battery_level = get.battery_level(obj)
battery_level = obj.mah * obj.nominal_voltage * 3.6;
结尾
......

答案(1)

Cam Salzberger.
Cam Salzberger. 2021年7月12日
你好胺,
依赖属性不仅仅是 最初 基于其他属性计算,它们是 总是 使用您创建的“get”方法计算。即使您只显示对象,属性将在那里重新计算(假设它是显示的公共属性)。
因此,如果您需要在步骤之后更新电池_LEVEL的值,则不会更新,请确保更新用于Battery_Level的归类中使用的属性。
如果你宁愿只基于其他属性计算的初始值,但是稍后想要手动和直接设置值,不要使用依赖属性。相反,在对象构造函数中设置初始值。
-CAM.

s manbetx 845


释放

R2021A

社区宝藏狩猎

找到Matlab Central中的宝藏,并发现社区如何帮助您!

开始狩猎!