Getting Started | ![]() ![]() |
2変数関数の可視化
関数 meshgrid
は、2変数関数の実行に用いるために、単一のベクトルまたは2つのベクトル
x
と y
で指定される領域を行列 X
と Y
に変換します。X
の行はベクトル x
のコピーで、Y
の列はベクトル y
のコピーです。
例題 - sinc関数のグラフ化
この例題は、2次元sinc 関数、sin(r)/r
をx およびy 方向で実行しグラフ化します。R
は、行列の中心である原点からの距離です。eps
(システム上で最小の浮動小数点数を出力するMATLABコマンド)を加えると、原点での0/0が中間で生じることを避けることができます。
[X,Y] = meshgrid(-8:.5:8); R = sqrt(X.^2 + Y.^2) + eps; Z = sin(R)./R; mesh(X,Y,Z,'EdgeColor','black')
デフォルトでは、MATLABはカレントのカラーマップを使ってメッシュを色付けします。しかしこの例題では、EdgeColor
surface
プロパティを指定することによって、単色のメッシュを用います。すべてのsurfaceのプロパティのリストは、surface
リファレンスページを参照してください。
陰線の除去を不可能にすることによって、透明なメッシュを作成できます。
hidden off
このオプションに関する情報は、hidden
リファレンスページを参照してください。
例題 - カラーサーフェスプロット
サーフェスプロットは、長方形の面が色付けされることを除いて、メッシュプロットに似ています。面のカラーは、Z
の値とカラーマップによって決定されます(colormap
は、順番付けられたカラーのリストです)。つぎのステートメントは、sinc
関数をサーフェスプロットとしてグラフ化し、カラーマップを選択し、カラーバーを付加して、データのカラーへのマッピングを示します。
surf(X,Y,Z) colormap hsv colorbar
カラーマップに関する情報は、colormap
リファレンスページを参照してください。
ライティングを用いたサーフェスプロット
ライティングは、方向性のある光源によってオブジェクトを照らす手法です。この手法は、サーフェスの形状に見やすい微妙な違いを与えます。ライティングは、3次元グラフに現実味を加えるためにも用いることができます。
つぎの例題は、前の例題と同じサーフェスを使い、赤色にカラーリングし、メッシュラインを除去します。lightオブジェクトは、"カメラ"の左側に付加されます(これは、サーフェスを見ている空間上の位置です)。
lightを付加し、ライティング方法を phong
に設定した後で、view
コマンドを使って視点を変更し、空間上の別の点(方位角が-15度で、仰角が65度)からサーフェスを見ているようにします。最後に、ツールバーのズームモードを使ってサーフェスを拡大します。
surf(X,Y,Z,'FaceColor','red','EdgeColor','none'); camlight left; lighting phong view(-15,65)
![]() |
メッシュプロットとサーフェスプロット | イメージ | ![]() |