【发布时间】:2011-09-02 00:07:43
【问题描述】:
我在 MATLAB 中使用 OOP,我有以下构造函数:
函数 obj = Squadron(num_fighters, num_targets, time_steps) 如果 nargin == 0 目标数 = 100; time_steps = 100; num_fighters = 10; 结尾 obj.num_shooters = num_fighters; 对于 iShooter = 1:obj.num_shooters a(iShooter) = 射手(num_targets, time_steps); 结尾 obj.ShooterArray = a; obj.current_detections = zeros(num_fighters, num_targets); 结尾那个临时变量“a”闻起来很糟糕。有没有更好的方法来初始化一个对象数组,我希望有一个推送/弹出方法。我确信有更好的方法来做到这一点。
【问题讨论】:
-
惊奇的是你也可以直接在
Shooter构造函数中分配Shooter数组:mathworks.com/help/techdoc/matlab_oop/brd4btr.html -
我在构造函数中分配它,你知道比使用临时变量更干净的方法吗?也许我错过了什么。
-
“更干净的方式”是主观的......我的信息:它不仅适用于
Squadron,而且直接适用于Shooter构造函数。 -
得到了你。我明白你在说什么。这样更干净。