MATLAB Answers

0

極座標表示の複数個表​示について教えていた​だきたいです。

Asked by yuya nakashima on 2 Jul 2019
以下のソースを使用して、極座標を複数個作成したいのですがどのように変更すればよろしいでしょうか。
ちなみに、以下のソースで実行してもプログラムが走らないため、困っています。
Vで近似式を表しています。
[Xtest,Ytest,Ztest] = meshgrid(-9:1:9);
p=10;
for a=1:10;
p=p-2;
Ztest(:,:,a)=p;
end
V(:,:,4)=-0.0444*(sqrt(Xtest(:,:,4).^2+Ytest(:,:,4).^2)).^2 + 0.1857*sqrt(Xtest(:,:,4).^2+Ytest(:,:,4).^2) + 3.55-3;
xslice = [5];
lvls = -0:0.2:4;
contourslice(Xtest,Ytest,Ztest,V,xslice,[],[],lvls)
colorbar
view(3)
grid on

  0 Comments

Sign in to comment.

1 Answer

Kazuya
Answer by Kazuya
on 22 Jul 2019

2つ問題があります。
1つ目:Vの配列サイズがこのままでは 19x19x4 ですので、Xtest などと同じ 19x19x19 にする必要があります。
ここは恐らく例えば
V=-0.0444*(sqrt(Xtest.^2+Ytest.^2)).^2 + 0.1857*sqrt(Xtest.^2+Ytest.^2) + 3.55-3;
と実行すればOK?
2つ目:
for a=1:10;
p=p-2;
Ztest(:,:,a)=p;
end
の処理の結果、 Ztest のグリッドデータが単調増加するデータではなくなっています。
それぞれを(すいません、意図を理解せずとりあえず実行できることを優先しています・・)加味すると
[Xtest,Ytest,Ztest] = meshgrid(-9:1:9);
V=-0.0444*(sqrt(Xtest.^2+Ytest.^2)).^2 + 0.1857*sqrt(Xtest.^2+Ytest.^2) + 3.55-3;
xslice = [5];
lvls = -0:0.2:4;
contourslice(Xtest,Ytest,Ztest,V,xslice,[],[],lvls)
colorbar
view(3)
grid on
となり、とりあえず表示はできるようになります。

  0 Comments

Sign in to comment.