1

シータとファイ (球座標 0<=シータ<=2*pi および 0<=ファイ<=pi) に依存する式があります。各エングルを挿入することで、量を取得しました。これで、さまざまな角度のデータ セットができたので、サーフェスをプロットする必要があります。私のデータは 180*360 の行列なので、SURF、MESH、または PLOT3 を使用できるかどうかわかりません。図はすべてのデータを含む面である必要があり、軸は角度に対する量ではなく、量に関するものである必要があります。どうすればそのような表面をプロットできますか?

4

2 に答える 2

0

meshそのようなデータを使用またはsurfプロットできない理由はわかりません。私が使用する傾向がある別のオプションは、密度プロットのオプションです。基本的に従属変数 (量) を画像として表示し、前述の 3D プロット関数と同じように、軸に沿って独立変数 (角度) を含めます。これは で行うことができますimagesc

通常、軸を従属変数にする必要があります。この点について詳しく教えていただけますか?

于 2011-07-17T00:27:05.103 に答える
0

私があなたを正しく理解していれば、あなたは関数を計算したf(theta,phi)ので、すべての点を含む表面を極座標でプロットしたいと考えてい(r,theta,phi)ますr=f(theta,phi)

これが目的の場合は、そのようなプロットの 2D バージョンが という名前で MATLAB に含まれていますpolar。残念ながら、あなたが指摘したようにpolar3MatlabCentralはあなたが探している一般化ではありません。

定数を使用して、次のコードで球をプロットできましたr=1。関数で試してみることができます:

phi1=0:1/(3*pi):pi; %# this would be your 180 points
theta1=-pi:1/(3*pi):pi; % your 360 points
r=ones(numel(theta1),numel(phi1));
[phi,theta]=meshgrid(phi1,theta1);
x=r.*sin(theta).*cos(phi);
y=r.*sin(theta).*sin(phi);
z=r.*cos(theta);
tri=delaunay(x(:),y(:),z(:));
trisurf(tri,x,y,z);

私のテストから、delaunay私の球体のボリュームを通過する多くの三角形も含まれているように見えるので、これは最適ではないようです. したがって、それ自体が描画する三角形を見て構築することができるかもしれませんfill3: 最初の近似として、点[x(n,m) x(n+1,m) x(n,m+1)]を 1 つの三角形に結合し、[x(n+1,m) x(n+1,m+1) x(n+1,m+1)]別の三角形に結合することができます...?

于 2011-07-17T02:12:38.133 に答える