ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

ezcontour

等高線プロッターの簡単な使用法

構文

ezcontour(fun)
ezcontour(fun,domain)
ezcontour(...,n)
ezcontour(axes_handle,...)
h = ezcontour(...)

説明

ezcontour(fun) は、関数 contour を使用して、fun(x,y) の等高線をプロットします。fun は、既定の領域でプロットされます。-2π < x < 2π, -2π < y < 2π です。

関数 fun は、MATLAB® ファイル関数または無名関数の関数ハンドル (function handleおよび「無名関数」を参照)、あるいは文字列 (「ヒント」を参照) のいずれかです。

ezcontour(fun,domain) は、指定された領域 domainfun(x,y) をプロットします。domain は、4 行 1 列のベクトル [xmin, xmax, ymin, ymax] または 2 行 1 列のベクトル [min, max] のいずれかです (ここで、min < x < maxmin < y < max です)。

ezcontour(...,n) は、nn 列のグリッドを使用して、既定の領域で関数 fun をプロットします。n の既定値は 60 です。

ezcontour(axes_handle,...) は、現在の Axes (関数 gca) の代わりにハンドル axes_handle をもつ Axes にプロットします。

h = ezcontour(...) は、contour オブジェクトへのハンドルを h で返します。

関数 ezcontour は、タイトルと Axes のラベルを自動的に付加します。

すべて折りたたむ

数式の等高線図の作成

この数式は x と y の 2 つの変数の関数を定義します。

$$f(x,y) = 3(1-x)^2 e^{-x^2-(y+1)^2} - 10\left(\frac{x}{5} - x^3 - y^5&#xA;\right) e^{-x^2-y^2} - \frac{1}{3}e^{-(x+1)^2-y^2}$$

関数 ezcontour では、関数ハンドル引数が必要です。ハンドル f を指定した無名関数として、この数式を MATLAB® 構文で記述します。別のファイルを作成せずにコマンド ウィンドウで無名関数を定義できます。便宜上、この関数は 3 行で記述します。

f = @(x,y) 3*(1-x).^2.*exp(-(x.^2) - (y+1).^2) ...
   - 10*(x/5 - x.^3 - y.^5).*exp(-x.^2-y.^2) ...
   - 1/3*exp(-(x+1).^2 - y.^2);

関数ハンドル fezcontour に渡します。x 方向および y 方向の -3 から 3 の領域を指定し、49 行 49 列の計算グリッドを使用します。

ezcontour(f,[-3,3],49)

この場合、グラフの上部のタイトル文字列が長すぎて合わないため、MATLAB® によって文字列が省略されます。

詳細

すべて折りたたむ

ヒント

関数を文字列として渡す

配列の乗算、除算、および指数の計算が、関数 ezcontour に転送される式の中で、常に行われています。たとえば、以下の式の等高線図の MATLAB 構文は、

sqrt(x.^2 + y.^2)

以下のように記述されます。

ezcontour('sqrt(x^2 + y^2)')

これは、x^2 が、関数 ezcontour に渡す文字列の x.^2 として解釈されます。

プロットする関数が、変数 u および v (x および y ではありません) の関数の場合、領域の端点 uminumaxvmin および vmax は、アルファベット順に並べ替えられます。そのため、ezcontour('u^2 - v^3',[0,1],[3,6]) は、領域 0 < u < 1、3 < v < 6 で、u2 - v3 の等高線をプロットします。

関数ハンドルを渡す

関数ハンドル引数は、MATLAB 構文を使用する関数を示さなければなりません。たとえば、以下のステートメントは、無名関数を示し、関数ハンドル fh を関数 ezcontour に渡します。

fh = @(x,y) sqrt(x.^2 + y.^2);
ezcontour(fh)

関数ハンドルを使用する場合、関数 ezcontour は、文字列入力と同様に、構文を変更しないので、配列べき乗、配列乗算、および配列除算演算子 (.^, .*, ./) を使用しなければなりません。

追加引数を渡す

関数で、たとえば、myfunk などの追加パラメーターが使用される場合、

function z = myfun(x,y,k)
z = x.^k - y.^k - 1;

無名関数を使用して、パラメーターを指定します。

ezcontour(@(x,y)myfun(x,y,2))
この情報は役に立ちましたか?