2
[r,t] = meshgrid(linspace(0,2*pi,361),linspace(0,pi,361));
[x,y]=pol2cart(sin(t)*cos(r),sin(t)*sin(r));
%[x,y]=pol2cart(r,t);
surf(x,y);

ここに画像の説明を入力してください

私はこのアドオンで遊んでいましたが、このためのデフォルトの関数を見つけようとしました。3D極プロットを行うにはどうすればよいですか?

私はこの男がここでさまざまな積分を視覚化するのを助けようとしています。

4

1 に答える 1

5

コードにはいくつかの問題があります。

  • sin(theta)*cos(phi)およびビットを使用して、既に球座標をデカルト座標に変換していsin(theta)*sin(phi)ます。なぜpol2cartこれを呼び出しているのですか (さらに、極座標で作業していません!)?
  • natan が指摘しているようzに、プロットには 3 次元 (つまり ) はありません。単位半径の場合、とrによって完全に定義される球面領域では省略できますが、デカルト領域では、との 3 つすべてがあります。の式は(単位半径) です。thetaphixyzzz = cos(theta)
  • のドキュメントを読んでいませんでした。次のように書かれsurfています。

    surf(Z,C)Zは、幾何学的に長方形のグリッド上に定義された単一値関数の高さをプロットしC、 と同じサイズであると仮定されるmatrix を使用しZて、表面に色を付けます。

    つまり、surf(x,y)ラインは単にマトリックスをプロットし、カラーマップとしてx使用yして色を付けます。

間違いを修正し、正しくプロットした上記のコードは次のとおりです。

[f,t] = meshgrid(linspace(0,2*pi,361),linspace(0,pi,361));
x = sin(t)*cos(f);
y = sin(t)*sin(f);
z = cos(t);
surf(x,y,z)

ここに画像の説明を入力

于 2013-01-09T05:02:23.703 に答える