How do I access properties of objects embedded inside another object organized in an array?

5 views (last 30 days)
J. Womack
J. Womack on 29 Mar 2017
Edited: per isakson on 1 Apr 2017
I have created two classes, an 'inner' and 'outer' class. The 'outer' class has properties defined by methods that depend on data from the 'inner' class. I want to access properties for an array objects from the 'inner' class embedded inside an array of 'outer' class objects. I have tried indexing using various methods to no avail.
For example, I have 10 'outer' objects with 3 'inner' objects embedded within each. If I want to simultaneously define a value for a property of the array of 30 'inner' objects, I cannot. I have tried:
outer_obj(:,1).inner_obj(:,1).inner_property = value
but am getting an error. I haven't seen documentation that provides guidance on how to assign values to properties of an array of objects that are embedded inside an array.
Any assistance is greatly appreciated.
  2 Comments
per isakson
per isakson on 1 Apr 2017
Is this the error message you see?
Expected one output from a curly brace or dot indexing expression,
but there were 2 results.
"I haven't seen documentation that provides guidance ... "
  • Why do you think it is possible?
  • What's not found in the documentation is typically not implemented!

Sign in to comment.

Answers (1)

Iddo Weiner
Iddo Weiner on 1 Apr 2017
% build an empty struct
A = struct;
A.outer = struct;
% either fill it
for i = 1:10
for j = 1:3
A(i,1).outer(j,1).inner = [i,j];
end
end
% or make it homogeneous
val = 'homogeneous input'
for i = 1:10;
for j = 1:3
A(i,1).outer(j,1).inner = val;
end
end

Community Treasure Hunt

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

Start Hunting!