forループで1ループごとの最大値をプロットするにはどうすればよいですか?
Mostrar comentarios más antiguos
値が変化するときの計算値の変化を調べようと思い、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);
よろしくお願いします。
Respuesta aceptada
Más respuestas (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
Categorías
Más información sobre 数学 en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

