0
我已經創建了這兩個代碼類。Matlab中的動態對象數組
classdef master < matlab.mixin.Copyable
properties
id
list
end
methods
function this=master(id)
if nargin > 0
this.id = id;
this.list = repmat(msg,1,20);
end
end
end
end
classdef msg < matlab.mixin.Copyable
properties
id
dest
ttl
end
methods
function this=msg(id,dest,ttl)
if nargin > 0
this.id = id;
this.dest = dest;
this.ttl = ttl;
end
end
end
end
在我的代碼,我嘗試從數組「master.list」刪除一個或多個objetc「味精」另一部分使用下列內容:
function verifyMsgToDiscard(this,t)
i = 1;
while (i <= numel(this.list))
m = this.list(i);
if (t > m.ttl)
this.list = this.list(this.list~=m); %remove m of the list
clear m; %delete m from the system
end
i= i + 1;
end
end
我收到錯誤:
索引超出矩陣尺寸。 (第117行) m = this.list(i);
我想這個問題是爲什麼我在修改master.list中的元素數量的同時迭代master.list。另外,我可以在「列表」中添加和刪除新的對象「msg」,然後它的大小會變化。我如何以動態的方式做到這一點。