|
这个问题已经被问了多次,简单一点,用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
复制代码
|
|