Array of ClassificationTree objects

3 views (last 30 days)
Rashid
Rashid on 6 Jun 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..

Accepted Answer

Ilya
Ilya on 6 Jun 2012
Use a cell array. Pre-allocate the array by
ensemble = cell(rows,1);
And then assign using curly brackets:
ensemble{k} = tree;
  2 Comments
Rashid
Rashid on 7 Jun 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 on 7 Jun 2012
It is not absolutely necessary to pre-allocate: it is a matter of efficiency.

Sign in to comment.

More Answers (0)

Products

Community Treasure Hunt

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

Start Hunting!