forループで1ループごとの最大値をプロットするにはどうすればよいですか?
Afficher commentaires plus anciens
値が変化するときの計算値の変化を調べようと思い、forループを使ってコードを組んでいます。
以下のようなコードの場合、
①A=0のときのEの最大値、A=1のときのEの最大値……というように1回ループするごとに得られるEの値の中から、最大値だけを取り出し、AとE最大値だけの2次元グラフを作りたいのですが、どうすればよいでしょうか?
②A=0,A=1......のそれぞれでEが最大になる時のBとCの値も取得したいのですがどうすればよいですか?
px=[];
py=[];
pz=[];
pa=[];
for A=0:1:30
for B=1:5:45
for C=-45:5:45
D=B/C;
E=sind(A)+sind(D);
px=[px,A];
py=[py,B];
pz=[pz,C];
pa=[pa,E];
end
end
end
scatter(px,pa);
よろしくお願いします。
Réponse acceptée
Plus de réponses (1)
既に回答が出ているので、私からは MATLAB っぽいやり方を紹介します。
LiveEditor で実行すると添付にあるような動画を作製できます。
% データ
B=1:5:45;
C=-45:5:45;
% Meshgrid を作製します
[Bmesh,Cmesh] = meshgrid(B,C);
D = (Bmesh./Cmesh);
sindD = sind(D);
% A に沿ってループ
for A=0:1:30
E = sindD + sind(A);
surf(Bmesh,Cmesh,E);
title(sprintf("A=%d",A))
drawnow;
end
Catégories
En savoir plus sur 数学 dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

