array of objects
1 次查看(过去 30 天)
显示 更早的评论
Hi, have a class like this
classdef someClass
properties
name
value
end
methods
function obj = someClass(name)
obj.name(name)
end
end
I would like to create an array of objects of that class. So if I have the names= ('a','b','c') I would like to have an array a of 3 objects with a(1).name='a' a(2).name='b' a(3).name='c'
how do I have to structure my constructor to achieve this by calling
a(1:numel(names))=someClass(names)
or how can I do this in another halfway smart way. Thanks, C
0 个评论
采纳的回答
Titus Edelhofer
2012-6-19
Hi,
something like this?
classdef someClass
properties
name
value
end
methods
function obj = someClass(name)
if ~nargin
% the default constructor. Needed for array creation
obj.name = '';
else
% only take care of the array part for simplicity:
if iscell(name)
[obj(1:length(name)).name] = deal(name{:});
end
end
end
end
end
You can call then as
a = someClass({'a' 'b' 'c'});
Titus
4 个评论
Kye Taylor
2012-6-21
When I debug, I see that the first call is with input, and the second call is without. Is my debugger being fishy, or is something nonconstant across machines?
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Whos 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!