Array of ClassificationTree objects

3 vues (au cours des 30 derniers jours)
Rashid
Rashid le 6 Juin 2012
I am very new to MATLAB. I was trying to train some ClassificationTree's and the assign them in array with the following snippet
for k = 1:rows
tree=ClassificationTree.fit(data(1:k, 1:cols),labels(1:k));
ensemble(k)=tree;
end
however when I run this I get following error
??? Error using ==> DisallowVectorOps>DisallowVectorOps.subsasgn at 28
You cannot assign to an object of class double using () indexing.
Error in ==> dwm02 at 7
ensemble(k)=tree;
is there any way of doing this? MATLAB help on object arrays is a bit confusing..
  1 commentaire
Walter Roberson
Walter Roberson le 6 Juin 2012
How did you initialize "ensemble" ?

Connectez-vous pour commenter.

Réponse acceptée

Ilya
Ilya le 6 Juin 2012
Use a cell array. Pre-allocate the array by
ensemble = cell(rows,1);
And then assign using curly brackets:
ensemble{k} = tree;
  2 commentaires
Rashid
Rashid le 7 Juin 2012
Thanks, this works very well!
Just a question - is it absolutely necessary to pre-allocate the array? My array will have dynamic nature, so I would prefer dynamic allocation of memory as well.
Walter Roberson
Walter Roberson le 7 Juin 2012
It is not absolutely necessary to pre-allocate: it is a matter of efficiency.

Connectez-vous pour commenter.

Plus de réponses (0)

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by