forループで1ループごとの最大値をプロットするにはどうすればよいですか?
显示 更早的评论
値が変化するときの計算値の変化を調べようと思い、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);
よろしくお願いします。
采纳的回答
更多回答(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
类别
在 帮助中心 和 File Exchange 中查找有关 数学 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

