for文のindexに構造体配列の要素を使いたい
56 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
例えば次のようなfor文を書くとします。
sum=0;
for k=1:5
sum=sum+k;
end
fprintf("%d",sum);
このとき、次のようにfor文のindexに構造体配列の要素を使いたいのですが、何かいい方法がありませんでしょうか?(このままだとエラーになる)
sum=0;
for time.k=1:5
sum=sum+time.k;
end
fprintf("%d",sum);
これは自分のプログラムの中で、構造体の要素にアクセスするためにfor文を使うことが多いことが理由です。indexとして用いる変数の数が多くなったことから、1つのtimeという構造体配列にまとめたいと考えましたが、エラーで実行できないので……。
今のところは次のようにしようと考えています。疑似的に実現したに過ぎないのですが……。
sum=0;
time.k.val=0;
for k=time.k.val+1:5
sum=sum+k;
time.k.val=k;
end
fprintf("%d",sum);
clear k
Réponse acceptée
Hernia Baby
le 1 Juin 2021
time.kの中に何かしらの変数が入っている物だと認識して回答します。
for文の中にindexに該当する番号を入れると構造体i番目の数値を代入できます。
以下のコードではtime.kが1~9の変数を持っており、それをfor文内で総和を取ってます。
clear,clc;
time = struct('k',[1:2:10]);
sum=0;
for i=1:length(time.k)
sum=sum+time.k(i);
end
3 commentaires
Hernia Baby
le 1 Juin 2021
返信ありがとうございます。本件理解しました。
pythonでいうところの
for i in struct:
sum = sum + i
ですかね。
---------------------------
以下のようにすればいけます。
clear,clc;
time = struct('k',[1:2:10]);
sum=0;
for i = time.k
sum=sum+i;
end
for文のドキュメントに配列をそのままインデックスとして格納できる旨が書かれていました。
Plus de réponses (1)
Voir également
Catégories
En savoir plus sur Matrix Indexing dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!