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

1 view (last 30 days)
yuya nakashima
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

Answers (1)

Kazuya
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
となり、とりあえず表示はできるようになります。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!