How to access randomly selected index in nested structures

1 view (last 30 days)
I want to access intexes that are into a structure that are nested within another structure. I have this code working through every ith element, and I want to add to the code randomly selected values j. In my case j is from 1 to 365 day of the year.
for i=1:n
fileName=structName(i).nestedStructName(j).name
end
Any ideas?
Darina

Accepted Answer

Amit
Amit on 28 Jan 2014
Try something like this:
for i=1:n
X = fieldnames(structName);
n = length(X);
fileName=structName(i).(X{randi(n)}).name;
end
The issue is that your nestedStucture has multiple fields and you wanna pick one randomly.

More Answers (2)

Mischa Kim
Mischa Kim on 28 Jan 2014
How about
fileName=structName(i).nestedStructName(randi(365,1)).name
Is this what you are looking for?
  7 Comments
Darina
Darina on 28 Jan 2014
[rS, cS] = size(allFileMin)
[rnS, cnS] = size(allFileMin(rS).demand_pattern)
the answer:
rS =
1
cS =
28
Reference to non-existent field 'demand_pattern'.
Error in Activity (line 136)
[rnS, cnS] = size(allFileMin(rS).demand_pattern)
Darina
Darina on 28 Jan 2014
This happends because I only have nestedStructName1 to nastedStructName365 but not a single naestedStructName without index.

Sign in to comment.


Shivaputra Narke
Shivaputra Narke on 28 Jan 2014
May this works,
for i=1:n j=1+round(364*rand(1)); fileName=structName(i).nestedStructName(j).name end

Categories

Find more on MATLAB in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!