2015-12-29 5 views
0

Мне нужно нарезать трехмерный том (матрица 200x200x500) и построить результат. Я попробовал следовать примеру Mathworks here, но полученный срез пуст (его не должно быть) ... У вас есть предложения по устранению этого? Благодаря!Matlab - slice 3D volume

Вот код, я использую, и полученный срез:

xmin = 1; 
ymin = 1; 
zmin = 1; 
xmax = 200; 
ymax = 200; 
zmax = 499; 
hslice = surf(linspace(xmin,xmax,100),... 
       linspace(ymin,ymax,100),... 
       zeros(100)); 
rotate(hslice,[100,100,250],-45) 
xd = get(hslice,'XData'); 
yd = get(hslice,'YData'); 
zd = get(hslice,'ZData'); 
delete(hslice); 
x = 1:200; 
y = 1:200; 
z = 1:499; 
figure; 
colormap(jet); 
h = slice(x,y,z,V1,xd,yd,zd); 
h.FaceColor = 'interp'; 
h.EdgeColor = 'none'; 
h.DiffuseStrength = 0.8; 

enter image description here

+0

Не могли бы вы объяснить свой код? Что означает V1? Было бы неплохо, если бы код исполнялся. – Anton

ответ

0

Это привлечёт срез при х = 100

v=randn(200,200,500); 
[x,y,z] = meshgrid(1:200,1:200,1:500); 
h=slice(x,y,z,v,100,[],[]); 
set(h,'EdgeColor','none') 

как мудрый вы можете разместить дополнительные срезы в y или z, если вы замените [] координатами для eh y и z.