|  | 
 
| 这个问题已经被问了多次,简单一点,用matlab自己的slice函数。 想容易设置,就自己一个slice,一个slice那么画。
 效果都还不错。
 
 
 
 复制代码clear all
clc
clf
% load data.mat
% 
% a=data(:,:,100);
% 
% [X,Y]=meshgrid(1:100,1:100);
% 
% 
% n=5;
% hold on
% for i=1:n
%     ind=i*10;
%     a=abs(data(:,:,ind));
%     h=surf(ind*ones(size(X)),X,Y,abs(a),'edgecolor','none','facecolor','interp','facealpha','interp')
%     alpha(h,ind/70);
% %     set(h,'facecolor','interp','facealpha','interp')
%     
% end
% 
% colormap(flipud(jet))
% % colormap(flipud(hot))
% grid on
% % view(-13,15)
% view(-31,19)
% 
figure(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 = [0]; 
zslice = [0];
h=slice(x,y,z,v,xslice,yslice,zslice);
set(h,'EdgeColor','none',...
'FaceColor','interp',...
'FaceAlpha','interp')
alpha('color')
colormap hsv
 
 | 
 |