gpt4 book ai didi

matlab - 如何在面向对象的 Matlab 中定义派生属性

转载 作者:太空宇宙 更新时间:2023-11-03 19:41:59 24 4
gpt4 key购买 nike

我想要一个可以作为 fv=object.field 访问的只读字段,但其中的值是返回值是根据对象的其他字段计算得出的(即返回值满足fv==f(object.field2))。

所需的功能与 Python 中的 property 函数/装饰器相同。

我记得看到一个引用资料,说这可以通过设置 properties block 的参数来实现,但是 Matlab OOP 文档太零散了,我找不到了。

最佳答案

这称为“依赖”属性。下面是一个使用派生属性的类的简单示例:

classdef dependent_properties_example < handle       %Note: Deriving from handle is not required for this example.  It's just how I always use classes.
properties (Dependent = true, SetAccess = private)
derivedProp
end
properties (SetAccess = public, GetAccess = public)
normalProp1 = 0;
normalProp2 = 0;
end
methods
function out = get.derivedProp(self)
out = self.normalProp1 + self.normalProp2;
end
end
end

定义了这个类,我们现在可以运行:

>> x = dependent_properties_example;
>> x.normalProp1 = 3;
>> x.normalProp2 = 10;
>> x
x =
dependent_properties_example handle

Properties:
derivedProp: 13
normalProp1: 3
normalProp2: 10

关于matlab - 如何在面向对象的 Matlab 中定义派生属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17090210/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com