oop - Matlab: Instantiate the handle class inside a function within another class -


let's say, instance, have 2 classes: & b. have set b handle class , property instantiate class (i.e. b).

therefore, have done in class a:

% constructor function = a()    a.objb = b(); % works fine     ...     = 1:10       a.var(i) = b(); % causes error occur    end end 

the error listed below:

"error using double conversion double b not possible.

the code snippet inside loop seems work if change a.var(i) = b(); var(i) = b();.

do have idea why is?

your .var field initialized double when make assignment (maybe []). using a.var(i) = xxx cannot change type of a.var.

try resetting value first time used. eg

for = 1:10     if == 1         a.var = b(); % overwrite existing value     else         a.var(i) = b(); % append value     end end 

this cause a.var field reallocated every loop. pre-allocated array make go faster. easiest way pre-allocate loop backwards, this:

for = 10:-1:1     if == 10         a.var = b(); % overwrite existing value, allocated room 10 elements     else         a.var(i) = b(); % assign each element in turn, 9 through 1     end end 

Comments

Popular posts from this blog

android - Get AccessToken using signpost OAuth without opening a browser (Two legged Oauth) -

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: mockito -

google shop client API returns 400 bad request error while adding an item -