ドキュメンテーション センター

  • 評価版
  • 製品アップデート

目次

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

slice

容積測定スライス プロット

構文

slice(V,sx,sy,sz)
slice(X,Y,Z,V,sx,sy,sz)
slice(V,XI,YI,ZI)
slice(X,Y,Z,V,XI,YI,ZI)
slice(...,'method')
slice(axes_handle,...)
h = slice(...)

説明

関数 slice は、3 次元データと直交する断面を表示します。

slice(V,sx,sy,sz) は、ベクトル sxsy、および sz 内の点で示される体積 V の断面を xy、および z 方向に沿って描画します。V は、m x n x p の体積配列で、既定の位置 X = 1:n, Y = 1:m, Z = 1:p でのデータを含んでいます。ベクトル sxsysz の各要素は、xyz 軸方向の断面を定義します。

slice(X,Y,Z,V,sx,sy,sz) は、体積 V の断面を描画します。XYZ は、V の座標を指定する 3 次元配列です。XYZ は、単調で、直交空間でなければなりません (たとえば、関数 meshgrid で作成されます)。各点の色は、体積 V への 3 次元内挿によって決定されます。

slice(V,XI,YI,ZI) は、XIYI、および ZI で定義される断面の体積 V のデータを描画します。XIYIZI は、表面を定義する行列で、体積は表面の点で計算されます。XIYIZI は、同じサイズでなければなりません。

slice(X,Y,Z,V,XI,YI,ZI) は、配列 XIYIZI で定義される面に沿って体積 V の断面を描画します。

slice(...,'method') は、内挿法を指定します。'method' には 'linear''cubic'、または 'nearest' を指定します。

  • linear は、三重線形内挿を指定します (既定の設定)。

  • cubic は、三重 3 次内挿を指定します。

  • nearest は、最近傍点による内挿を指定します。

slice(axes_handle,...) は、現在の Axes オブジェクト (関数 gca) ではなく、ハンドル axes_handle をもつ Axes にプロットします。Axes の clim プロパティは、V の有限値に拡張されます。

h = slice(...) は、surface グラフィックス オブジェクトのハンドルのベクトルを返します。

関数

を、範囲 –2 ≤ x ≤ 2, –2 ≤y ≤2, – 2 ≤ z ≤2 で可視化します。

[x,y,z] = meshgrid(-2:.2:2,-2:.25:2,-2:.16:2);
v = x.*exp(-x.^2-y.^2-z.^2);
xslice = [-1.2,.8,2]; yslice = 2; zslice = [-2,0];
slice(x,y,z,v,xslice,yslice,zslice)
colormap hsv

任意の角度での断面の作成

任意の平面内で方向をもつ断面を作成できます。以下を行います。

  • 体積の定義域でスライスの表面を作成します (surflinspace)。

  • Axes を基準にしてこの表面の方向を設定します (rotate)。

  • 表面の XDataYDataZData を取得します (get)。

  • このデータを使って、3 次元で断面を描画します。

たとえば、次のステートメントは、回転平面を使って、上記の例に断面を描画します。このコマンドを for ループ内に配置すると、z 軸に沿った体積内の断面を描画します。

for i = -2:.5:2
	hsp = surf(linspace(-2,2,20),linspace(-2,2,20),zeros(20)+i);
	rotate(hsp,[1,-1,1],30)
	xd = get(hsp,'XData');
	yd = get(hsp,'YData');
	zd = get(hsp,'ZData');
	delete(hsp)
	slice(x,y,z,v,[-2,2],2,-2) % Draw some volume boundaries
	hold on
	slice(x,y,z,v,xd,yd,zd)
	hold off
	axis tight	
	view(-5,10)	
	drawnow
end

次の図は、同じ断面が 3 つの位置で物体を横切ることを示しています。

非平面表面の断面

任意の表面を使って体積の断面を作成できます。この例は、物体を通る球面の断面を設定して、前の例で作成された物体を調べます。

[xsp,ysp,zsp] = sphere;
% Draw some volume boundaries
% Draw some volume boundaries
slice(x,y,z,v,[-2,2],2,-2)
for i = -3:.2:3
	hsp = surface(xsp+i,ysp,zsp);
	rotate(hsp,[1 0 0],90)
	xd = get(hsp,'XData');
	yd = get(hsp,'YData');
	zd = get(hsp,'ZData');
	delete(hsp)
	hold on
	hslicer = slice(x,y,z,v,xd,yd,zd);
	axis tight 
	xlim([-3,3])
	view(-10,35)
	drawnow
	delete(hslicer)
	hold off
end

次の図は、球面が 3 つの位置で物体を横切ることを示しています。

参考

|

この情報は役に立ちましたか?