for文のindexに構造体配列の要素を使いたい
58 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
gafakel
el 1 de Jun. de 2021
Comentada: gafakel
el 15 de Jun. de 2021
例えば次のような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
Respuesta aceptada
Hernia Baby
el 1 de Jun. de 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 comentarios
Hernia Baby
el 1 de Jun. de 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文のドキュメントに配列をそのままインデックスとして格納できる旨が書かれていました。
Más respuestas (1)
Ver también
Categorías
Más información sobre Matrix Indexing en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!