Main Content

streamslice

スライス平面内の流線の描画

  • Cartesian grid with plotted lines and arrows

説明

streamslice(X,Y,Z,U,V,W,xslice,yslice,zslice) は、3 次元ベクトル データ UV、および W から間隔を空けた流線を自動的に描画します。座標データとして XYZ を指定します。特定の軸に直交するスライスの位置として xsliceyslicezslice を指定します。

streamslice(U,V,W,xslice,yslice,zslice)UV、および W の既定の座標データを使用します。UV、および W 内の各要素の (x,y,z) 位置は、それぞれ列、行、ページ インデックスに基づきます。

streamslice(X,Y,U,V) は、2 次元ベクトル データ U および V から間隔を空けた流線を自動的に描画します。座標データとして X および Y を指定します。

streamslice(U,V)U および V の既定の座標データを使用します。U および V 内の各要素の (x,y) 位置は、それぞれ列インデックスと行インデックスに基づきます。

streamslice(___,arrowsmode) は、arrowsmode'noarrows' であり、方向を示す矢印を表示しません。arrowsmode の既定値は 'arrows' で、方向を示す矢印を表示します。このオプションは、前述の構文のすべての入力引数と共に使用できます。

streamslice(___,density) は、自動的に決定される流線の間隔を変更します。density は正のスカラーです。既定値は 1 です。値を大きくすると、各平面により多くの流線を作成します。たとえば、2 は既定値の約 2 倍の本数で流線を作成し、0.5 は約半分の流線になります。

streamslice(___,method) は内挿法を指定します。ここでメソッドは 'linear''cubic' または 'nearest' にできます。

streamslice(ax,___) は、現在の axes オブジェクト (gca) ではなく指定された座標軸にプロットします。

lineobj = streamslice(___) は、作成された Line オブジェクトを返します。

[verts,averts] = streamslice(___) は、流線と矢印を描画するための頂点を cell 配列で返します。この構文は流線をプロットしません。

すべて折りたたむ

wind データセットを読み込んで、北アメリカ各地での大気の流れを表す 3 次元配列 uvwxy および z を読み込みます。z = 5 の場合のスライス平面に沿って流線を描画します。

load wind
streamslice(x,y,z,u,v,w,[],[],5)
axis tight

Figure contains an axes object. The axes object contains 94 objects of type line.

wind データセットを読み込み、z = 5 の場合のスライス平面に沿って、方向を示す矢印のない流線を描画します。

load wind
streamslice(x,y,z,u,v,w,[],[],5,'noarrows')
axis tight

Figure contains an axes object. The axes object contains 45 objects of type line.

wind データセットを読み込み、z = 5 の場合のスライス平面に沿って流線を描画します。2density 値を使用して、既定値の約 2 倍の本数で流線を描画します。

load wind
streamslice(x,y,z,u,v,w,[],[],5,2)
axis tight

Figure contains an axes object. The axes object contains 175 objects of type line.

wind データセットを読み込み、z = 1、5、および 10 の場合のスライス平面に沿って流線の頂点を計算します。

load wind
[verts, ~] = streamslice(x,y,z,u,v,w,[],[],[1,5,10]);

頂点を streamtube に渡して、線をチューブとして可視化します。

streamtube(verts,1)

view(3)
axis tight
shading interp
camlight
lighting gouraud

Figure contains an axes object. The axes object contains 161 objects of type surface.

流線をプロットし、返された Line オブジェクトを l に保存します。

[x,y] = meshgrid(-10:10);
u = 2.*x.*y;
v = y.^2 - x.^2;
l = streamslice(x,y,u,v);
axis tight

Figure contains an axes object. The axes object contains 112 objects of type line.

流線のライン幅を 2 に設定します。その色を赤に設定します。すべての流線のプロパティを同時に変更するには、関数 set を使用します。

set(l,'LineWidth',2)
set(l,'Color','r');

Figure contains an axes object. The axes object contains 112 objects of type line.

最初に表面プロットを作成します。

z = peaks;
surf(z);
shading interp;

Figure contains an axes object. The axes object contains an object of type surface.

z の 2 次元勾配を計算します。x 成分および y 成分を streamslice へのベクトル データ入力として使用します。流線の色を黒に設定します。

[u,v] = gradient(z);
l = streamslice(u,v);
set(l,'Color','k');

Figure contains an axes object. The axes object contains 153 objects of type surface, line.

流線が曲線の表面上に描画されるように z 軸上に移します。

for i=1:length(l)
    zi = interp2(z,l(i).XData, l(i).YData);
    l(i).ZData = zi;
end

Figure contains an axes object. The axes object contains 153 objects of type surface, line.

入力引数

すべて折りたたむ

x 軸座標のデータ。2 次元配列または 3 次元配列として指定します。単調でなければなりませんが、等間隔である必要はありません。

XYZUV および W は、同じサイズでなければなりません。

行列 XY、および Z を作成するには、関数 meshgrid を使用できます。

y 軸座標のデータ。2 次元配列または 3 次元配列として指定します。単調でなければなりませんが、等間隔である必要はありません。

XYZUV および W は、同じサイズでなければなりません。

行列 XY、および Z を作成するには、関数 meshgrid を使用できます。

z 軸座標のデータ。3 次元配列として指定します。単調でなければなりませんが、等間隔である必要はありません。

XYZUV および W は、同じサイズでなければなりません。

行列 XY、および Z を作成するには、関数 meshgrid を使用できます。

ベクトル データの x 成分。2 次元配列または 3 次元配列として指定します。

XYZUV および W は、同じサイズでなければなりません。

ベクトル データの y 成分。2 次元配列または 3 次元配列として指定します。

XYZUV および W は、同じサイズでなければなりません。

ベクトル データの z 成分。3 次元配列として指定します。

XYZUV および W は、同じサイズでなければなりません。

x 軸のスライス値。次のいずれかの形式で指定します。

  • スカラー — 指定された位置で x 軸に直交するスライス平面を 1 つ描画します。

  • ベクトル — 指定された位置で x 軸に直交するスライス平面を複数描画します。

  • [] — スライス平面は描画しません。

y 軸のスライス値。次のいずれかの形式で指定します。

  • スカラー — 指定された位置で y 軸に直交するスライス平面を 1 つ描画します。

  • ベクトル — 指定された位置で y 軸に直交するスライス平面を複数描画します。

  • [] — スライス平面は描画しません。

z 軸のスライス値。次のいずれかの形式で指定します。

  • スカラー — 指定された位置で z 軸に直交するスライス平面を 1 つ描画します。

  • ベクトル — 指定された位置で z 軸に直交するスライス平面を複数描画します。

  • [] — スライス平面は描画しません。

流線の密度。正のスカラーとして指定します。

既定値は 1 です。値を大きくすると、各平面により多くの流線を作成します。たとえば、2 は既定値の約 2 倍の本数で流線を作成し、0.5 は約半分の流線になります。

矢印の表示モード。次の値のいずれかとして指定します。

  • 'arrows' — 流線上に方向を示す矢印を表示します。

  • 'noarrows' — 流線上に方向を示す矢印を表示しません。

内挿法。次の値のいずれかとして指定します。

  • 'linear' — 対応する各次元で隣接するグリッド点の値の線形内挿。

  • 'cubic' — 対応する各次元で隣接するグリッド点の値の 3 次内挿。

  • 'nearest' — 最も近いグリッド点の値。

ターゲット座標軸。Axes オブジェクトとして指定します。座標軸を指定しない場合、streamslice は現在の座標軸にプロットします。

出力引数

すべて折りたたむ

流線および方向を示す矢印の Line オブジェクト。配列として返されます。

流線の頂点。cell 配列として返されます。cell 配列の各要素は、1 本のラインにおける頂点の行列です。

これらの値を流線描画関数 (streamlinestreamribbonstreamtube) のいずれかに渡すことができます。

矢印の頂点。cell 配列として返されます。cell 配列の各要素は、1 本の矢印における頂点の行列です。arrowsmode'noarrows' の場合、averts は空の cell 配列です。

これらの値を streamline に渡すことができます。

拡張機能

バージョン履歴

R2006a より前に導入