Adding fields and values to a structure iteratively
7 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
John Davis
am 17 Jul. 2020
Kommentiert: Stephen23
am 18 Jul. 2020
I wish to make a struct with n fields, each containing a probability distribution generated by makedist(). As an example, let's take n=3. My code looks like this:
prior(1)=makedist('uniform',-1,1);
prior(2)=makedist('uniform',-1,1);
prior(3)=makedist('uniform',-1,1);
priors=struct('prior1',prior(1),'prior2',prior(2),'prior3',prior(3));
I would like to build the struct "priors" iteratively in a loop when n is large, but I'm having lots of difficulty working with structs, even after reading the documentation and other questions posted here. Any advice would be much appreciated!
1 Kommentar
Stephen23
am 18 Jul. 2020
"I wish to make a struct with n fields,..."
Your code would be simpler and more efficient if you used a 1xn structure with one field:
S(1).prior = makedist('uniform',-1,1);
S(2).prior = makedist('uniform',-1,1);
S(3).prior = makedist('uniform',-1,1);
Akzeptierte Antwort
Sindar
am 17 Jul. 2020
n=3;
priors=struct();
for ind=1:n
priors.("prior"+ind) = makedist('uniform',-1,1);
end
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Structures finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!