How to access randomly selected index in nested structures

5 次查看(过去 30 天)
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

采纳的回答

Amit
Amit 2014-1-28
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.

更多回答(2 个)

Mischa Kim
Mischa Kim 2014-1-28
How about
fileName=structName(i).nestedStructName(randi(365,1)).name
Is this what you are looking for?
  7 个评论
Darina
Darina 2014-1-28
[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 2014-1-28
This happends because I only have nestedStructName1 to nastedStructName365 but not a single naestedStructName without index.

请先登录,再进行评论。


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

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by