Create superclass objects in a for loop

classdef SimulationAlgorithm < AgentAlgorithm
%Paremeters that can only set by constructor
properties(GetAccess = 'public', SetAccess = 'immutable')
NbofAlliedAgents;
NbofEnemyAgents;
TotalSimTime;
end
methods
%Constructor for Simulation Algorithm
function Sim = SimulationAlgorithm(N, M, T)
Sim.NbofAlliedAgents = N;
Sim.NbofEnemyAgents = M;
Sim.TotalSimTime = T;
%Creates Agents via AlliedAgent SuperClass
AlliedStates = Sim.CreateRandomStates(Sim, ...
Sim.NbofAlliedAgents, 'Allied');
EnemyStates = Sim.CreateRandomStates(Sim,...
Sim.NbofEnemyAgents, 'Enemy');
for i=1:Sim.NbofAlliedAgents
AlliedAgents(i) = AlliedAgents(i)@AgentAlgorithm(AlliedStates(i,:));
end
end
end
%These methods can be invoked w/o an object initalized, Obj needs to
%be send as parameter as a result
methods (Static, Access = 'private')
%Creates [x y z Vx Vy Vz] vector for all NbofAgents. Distinguishes
%Allied vs Enemy agents via Type parameter.
function [Vector] = CreateRandomStates(Obj, NbofAgents, Type)
%SIMPLIFIED VERSION NOT REAL ONE
Vector = randi([1 100], [NbofAgents 6]);
end
end
end
How can I call superclass constructor in a for loop. The nb. of the objects of AgentAlgorithm varies. In current state, it always says superclass constructor should be top state.

 採用された回答

Umit
Umit 2012 年 2 月 17 日

0 投票

I restarted matlab, everything works fine, :D

その他の回答 (2 件)

Umit
Umit 2012 年 2 月 17 日

0 投票

Noone knows how to initiate superclass in a for loop?

1 件のコメント

Walter Roberson
Walter Roberson 2012 年 2 月 17 日
I am not no-one, and I don't know anything about the topic. Negating both sides we arrive at the logical conclusion that no-one knows anything about the topic.

サインインしてコメントする。

Daniel Shub
Daniel Shub 2012 年 2 月 17 日

0 投票

Maybe I am missing something here, but doesn't it make more sense for the AlliedStates constructor to handle an array input.

カテゴリ

質問済み:

2012 年 2 月 16 日

編集済み:

Jan
2013 年 10 月 15 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by