我正在开发一个matlab OOP项目,我需要一个带有一个参数的getter方法。由于我不想让问题非常具体,我想概括一下。所以这里是上下文:
所以这里的问题是由具有外部依赖性的类属性给出的。所以我的问题是:
答案 0 :(得分:1)
带有一个(或多个参数)的getter
方法不再是经典的getter
方法 - 它只是一种常规方法。
使用普通方法可以实现两种用例:
function x_pos = X_Pos(this, t)
if nargin < 2
% handle space_obj.X_Pos case
else
% handle space_obj.X_Pos(1) case
end
end
matlab执行函数的事实,即使它们被引用而没有空括号,然后让你结合两种情况:
x_static = space_obj.X_Pos
或
x_at_t1 = space_obj.X_Pos(t1)
然而,我个人赞成将其分为两部分,以明确区分两者。例如。通过对此属性的“静态”版本使用X0_Pos
或类似的东西,并使用X_Pos
作为时间依赖的版本。在这种情况下你可以,例如使用依赖属性返回static_obj.X_Pos(0)
的{{1}}:
static_obj.X0_Pos