MATLAB でのメッシュ表面プロット
このチュートリアルでは、Matlab の mesh()
関数を使用してメッシュサーフェスプロットを作成する方法について説明します。
MATLAB で mesh()
関数を使用してサーフェスプロットを作成する
Matlab の組み込み関数 mesh()
は、3D 平面上に表面プロットを作成します。mesh()
関数内の行列を、3D 平面にプロットする関数として渡すことができます。mesh()
関数は、x-y 座標のデフォルト値を使用して、指定された行列を z 軸に沿ってプロットします。x 座標と y 座標は、指定された行列のインデックスから取得されます。与えられた行列は、3 次元平面上の高さとして z 軸にプロットされます。たとえば、行列 Z を作成し、Matlab の mash()
関数を使用して表面プロットにプロットしてみましょう。以下のコードを参照してください。
clc
[x,y] = meshgrid(-18:1:18);
r = sqrt(x.^2 + y.^2)/2;
z = cos(r)./r;
mesh(x,y,z)
出力:
この行列のデフォルト値を使用する代わりに、独自の XY 平面を作成して、指定された行列をプロットできます。mesh()
関数を使用した表面プロットは、面の色が単色になり、エッジの色はなくなります。mesh()
関数内の 4 番目の引数を使用して、メッシュの色を指定することもできます。サーフェスの可視性を設定するために使用される FaceAlpha
などの他のプロパティを設定することもできます。
デフォルトでは、サーフェスの可視性は 1 です。後で使用するメッシュ関数のオブジェクトを作成し、他の関数のプロパティを編集および変更することもできます。meshgrid()
関数を使用して、x-y 座標とともにメッシュグリッドを作成できます。表面プロットは色別にプロットされているため、表面プロットと一緒にカラーバーを描画して、どの色がどの値に対応するかを示すこともできます。
上記のプロットにカラーバーを描きましょう。以下のコードを参照してください。
clc
[x,y] = meshgrid(-18:1:18);
r = sqrt(x.^2 + y.^2)/2;
z = cos(r)./r;
mesh(x,y,z)
colorbar
出力:
mesh()
関数の代わりに、meshc()
関数を使用して、サーフェスプロットの下にカウンターを描画できます。mesh()
関数の代わりに、meshz()
関数を使用して、サーフェスプロットの下にカーテンを描画することもできます。メッシュサーフェスプロット内では、冷たい色は低い値に対応し、高い色は最大値に対応します。
line style プロパティを使用して、プロットの線のスタイルを変更することもできます。デフォルトの線スタイルプロパティは実線ですが、実線、実線、または点線に変更できます。mesh()
関数の代わりに surf()
関数を使用して、表面プロットをプロットすることもできます。
mesh()
関数と surf()
関数の違いは、mesh()
関数を使った場合、エッジの色はベタで、フェイスの色はないが、surf()
関数を使った場合、エッジの色はなく、フェイスの色はベタであることだ。
上記のプロットでは、プロットが色付きのエッジを持つ複数のボックスで構成されていることがわかりますが、中央に色がありませんが、surf()
関数を使用すると、ボックスは次のように塗りつぶされます。FaceColor
プロパティを使用して mesh()
関数で顔の色をオンにすることもできます。また、同じプロパティを使用して surf()
関数で顔の色をオフにすることもできます。