フィルターのクリア

Adding fields and values to a structure iteratively

63 ビュー (過去 30 日間)
John Davis
John Davis 2020 年 7 月 17 日
コメント済み: Stephen23 2020 年 7 月 18 日
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 件のコメント
Stephen23
Stephen23 2020 年 7 月 18 日
"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);

サインインしてコメントする。

採用された回答

Sindar
Sindar 2020 年 7 月 17 日
n=3;
priors=struct();
for ind=1:n
priors.("prior"+ind) = makedist('uniform',-1,1);
end

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeStructures についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by