How to create array of user objects?
How to create array of user objects?
(OP)
I've created a fairly simple class and can instantiate and work with objects of the class. Now someone has asked for the ability to create arrays of objects, which I thought would be straight-forward, but I'm getting errors from the subsref.m function.
I don't even understand why subsref is being called. I'm attempting to create an array as follows:
obj1 = myClass(args);
obj2 = myClass(args);
objArray = [obj1,obj2];
If I then ask for objArray(1), I get subsref errors, apparently because the objArray is of type myClass.
I thought subsref was for handling index references INTO an object, e.g. obj1(1), which might well return a value of a different type, whereas this is a case where I want to index into an array and get a myClass object as a return value.
What am I misunderstanding? Is there a way to assign objArray = [obj1,obj2];?
thanks,
Bruce
I don't even understand why subsref is being called. I'm attempting to create an array as follows:
obj1 = myClass(args);
obj2 = myClass(args);
objArray = [obj1,obj2];
If I then ask for objArray(1), I get subsref errors, apparently because the objArray is of type myClass.
I thought subsref was for handling index references INTO an object, e.g. obj1(1), which might well return a value of a different type, whereas this is a case where I want to index into an array and get a myClass object as a return value.
What am I misunderstanding? Is there a way to assign objArray = [obj1,obj2];?
thanks,
Bruce





RE: How to create array of user objects?
It turns out that if I just leave these functions out all together -- which I could easily do since they were doing nothing useful -- then Matlab calls the built-in versions, and everything works fine.
I hope this will be helpful to someone.
- Bruce