gpt4 book ai didi

MatLab:如何定义依赖于其他属性的(非恒定)属性?

转载 作者:行者123 更新时间:2023-12-02 03:12:39 25 4
gpt4 key购买 nike

在下面的类(class)中

classdef ClassCar
properties (Constant)
% Car phyisical properties
m = 1630; % [kg]
R_rim = 14*.0254; % [m]
e_tire = .175*.55; % [m]
R_e = ClassCar.R_rim + ClassCar.e_tire; % <= HERE

% Car transmission properties
gearRatios = [3.154 1.925 1.281 .951 .756];
finalDrive = 3.05; %Rapport de differentiel
overallRatios = ClassCar.gearRatios * ClassCar.finalDrive;% <= HERE
end
end

我想要拥有依赖于其他属性的组合属性(作为快捷方式)。 IE。从实例化对象中检索(car = ClassCar)

car.R_e

car.overallRatios

问题是 R_e 是 R_rim 和 e_tire 的函数。使用(常量)属性,它可以工作,但问题是我希望这些属性不是常量,并且简单地删除关键字会导致问题。

然后我尝试借助方法来做到这一点

classdef ClassCar
properties
% Car phyisical properties
m = 1630; % [kg]
R_rim = 14*.0254; % [m]
e_tire = .175*.55; % [m]

% Car transmission properties
gearRatios = [3.154 1.925 1.281 .951 .756];
finalDrive = 3.05; %Rapport de differentiel
end
methods (Static)
function value = R_e()
value = R_rim + e_tire; % <= HERE
end
function value = overallRatios()
value = gearRatios * finalDrive;
end
end
end

但即使使用关键字(静态)作为方法,我也会收到错误消息“未定义的函数或变量'R_rim'。”我尝试输入 self.R_rim、ClassCar.R_rim,但没有成功。

如何实现这一目标?这是最好的方法吗?如果是,如何访问对象的属性(例如 self.value)?

谢谢。

最佳答案

您要查找的是dependent properties 。这些被列为属性,但有自己的获取(或设置)值的方法:

classdef ClassCar
properties
R_Rim = 14*.0254;
e_tire = .175*.55;
end
properties (Dependent)
R_e
end
methods
function val = get.R_e(obj)
val = obj.R_rim + obj.e_tire;
end
end

end

关于MatLab:如何定义依赖于其他属性的(非恒定)属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39790833/

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