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);

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

set(l,'Color','k');

流線が曲線の表面上に描画されるように 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 より前に導入

すべて展開する