MATLAB Function Reference | ![]() ![]() |
表示
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
')
h = slice(...)
詳細
slice(V,sx,sy,sz)
は、ベクトルsy
, sx
, code>sz 内の点で体積 V
の断面を x, y, z 方向に沿って描画します。V
は、 m*n*p の配列で、デフォルトの位置 X = 1:n
, Y = 1:m
, Z =
1:p
でのデータ値を含んでいます。ベクトル sx
, sy
, sz
の各要素は、x, y, z 軸方向の断面を定義します。
slice(X,Y,Z,V,sx,sy,sz)
は、体積 V
の断面を描画します。X
, Y
, Z
は、V
に対する座標を指定する3次元配列です。X
, Y
, Z
は、単調で、直交空間でなければなりません(たとえば、meshgrid
で作成されます)。各点の色は、体積 V
への3次元補間によって決定されます。
slice(V,XI,YI,ZI)
は、XI
, YI
, ZI
で定義される断面に対する体積Vのデータを描画します。XI
, YI
, ZI
は、surface
を定義する行列で、体積は surface
の点で計算されます。XI
, YI
, ZI
は、同じサイズでなければなりません。
slice(X,Y,Z,V,XI,YI,ZI)
は、配列XI
, YI
, ZI
で定義されるsurfaceに沿って、体積 V
の断面を描画します。
slice(...,'
は、補間法を指定します。method
')
'
method
'
は、 'linear'
, 'cubic'
, 'nearest'
のいずれかです。
linear
は、線形補間を指定します(デフォルト)。cubic
は、キュービック補間を指定します。nearest
は、最近傍点による補間を指定します。 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
![]()
任意の角度での断面作成
任意の平面内で方向をもつ断面を作成できます。つぎのようにします。
surf
, linspace
)。rotate
)。XData
,YData
, ZData
を取得します。たとえば、つぎのステートメントは、回転された平面を使って、上記の例に断面を描画します。このコマンドを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) % 物体を区切る面を描画 hold on slice(x,y,z,v,xd,yd,zd) hold off axis tight view(-5,10) drawnow end
つぎの図は、同じ断面が3つの位置で物体を横切ることを説明しています。
非平面サーフェスの断面
任意のsurfaceを使って体積の断面を作成できます。つぎの例は、体積に対する球面の断面を設定して、作成された部分を調べます。
[xsp,ysp,zsp] = sphere; 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つの位置で物体を横切ることを説明しています。
参考
interp3
,meshgrid
![]() | size (serial) | smooth3 | ![]() |