Effacer les filtres
Effacer les filtres

array of objects

3 vues (au cours des 30 derniers jours)
Christof
Christof le 19 Juin 2012
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

Réponse acceptée

Titus Edelhofer
Titus Edelhofer le 19 Juin 2012
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 commentaires
Sean de Wolski
Sean de Wolski le 21 Juin 2012
Nice Titus, learn something every day!
Kye Taylor
Kye Taylor le 21 Juin 2012
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?

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by