3-D Visualization | ![]() ![]() |
一様に分布していないデータのサーフェスプロット
meshgrid
を使って、一様分布するサンプルデータ点のグリッドを作成し、sinc
関数を計算し、グラフ化します。そして、MATLABは、隣り合った行列要素を結合することにより、サーフェスプロットを作成し、四辺形のメッシュを型作ります。
一様でない分布をするサンプルデータからサーフェスを作成するには、まず、griddata
を使って、一様分布をするようにデータを内挿し、その後で、通常のmesh
と surf
を使います。
例題-
一サーフェス上に一様分布していないデータを表示
つぎの例は、指定した範囲の中のランダムな点で、関数sinc
を計算し、同じサーフェスプロットとする表示として、一様なサンプルデータを作成します。プロセスには、つぎのステップを含んでいます。
linspace
を使って、ユーザの一様に分布していないサンプルデータの占める範囲を等間隔に分布する値を作成します。meshgrid
を使って、linspace
の出力をベースにプロットに必要なグリッドを作成します。griddata
を使って、一様分布していないサンプルデータを内挿して、 meshgrid
で出力される一様分布するグリッドを作成します。x = rand(100,1)*16 - 8; y = rand(100,1)*16 - 8; r = sqrt(x.^2 + y.^2) + eps; z = sin(r)./r;
linspace
は、希望する点数をもつ等間隔のデータを作成する便利な方法です。つぎのステートメントは、前のsinc
の例題で、-8:.5:8のステートメントで作成されたものと同じ解像度をもつ、ランダムデータの範囲をカバーするベクトルを生成します。
xlin = linspace(min(x),max(x),33); ylin = linspace(min(y),max(y),33);
[X,Y] = meshgrid(xlin,ylin);
griddata
を使って、等間隔の点に関数値を内挿することです。このステートメントは。新しいデータ点を作成するために、三角形をベースにしたキューブック内挿を使ってします。
Z = griddata(x,y,z,X,Y,'cubic');
mesh(X,Y,Z) % 内挿 axis tight; hold on plot3(x,y,z,'.','MarkerSize',15) % 一様分布でない
![]() |
2変数関数の可視化 | パラメトリックなサーフェス | ![]() |