我與OOP玩弄MATLAB中的數組,我有下面的構造:MATLAB初始化對象
function obj = Squadron(num_fighters, num_targets, time_steps) if nargin == 0 num_targets = 100; time_steps = 100; num_fighters = 10; end obj.num_shooters = num_fighters; for iShooter = 1:obj.num_shooters a(iShooter) = Shooter(num_targets, time_steps); end obj.ShooterArray = a; obj.current_detections = zeros(num_fighters, num_targets); end
該臨時變量「a」氣味太可怕了。有沒有更好的方法來初始化一個對象數組,我希望有一個push/pop方法。我相信有更好的方法來做到這一點。
令人驚訝的,你也可以直接在'Shooter'構造分配'Shooter'陣列:http://www.mathworks.com /help/techdoc/matlab_oop/brd4btr.html – Mikhail 2011-05-26 05:10:15
我分配它的構造函數,你知道一個更清潔的方式來做到這一點比使用臨時變量嗎?也許我錯過了一些東西。 – bonhoffer 2011-05-26 11:01:51
「更清潔的方式」是主觀的...我的信息:它的作品不僅在'Squadron'也可直接在'Shooter'構造。 – Mikhail 2011-05-26 15:00:22