www.gusucode.com > mbctools 工具箱 matlab 源码程序 > mbctools/@sweepset/surf.m
function varargout=surf(S1,S2,S3,NumGrid) %SURF Overloaded surface plot for sweepsets with labels and light % % [HSURF, HLIGHTS] = SURF(S1,S2,S3,NumGrid) produces a surface of the % sweepsets S1, S2 and S3. % % S1, S2, and S3 must have only one variable. % NumGrid [Nx,Ny] is optional. % Copyright 2000-2013 The MathWorks, Inc. and Ford Global Technologies, Inc. if nargin<4 NumGrid = [30 30]; elseif numel(NumGrid)==1 NumGrid = [NumGrid NumGrid]; end S1 = SetMinMax(S1); S2 = SetMinMax(S2); S3 = SetMinMax(S3); xi = linspace(S1.var.min,S1.var.max,NumGrid(1)); yi = linspace(S2.var.min,S2.var.max,NumGrid(2))'; [X,Y,Z] = griddata(S1.data,S2.data,S3.data,xi,yi,'linear'); h = surf(X,Y,Z,'FaceLighting','gouraud','FaceColor','interp','EdgeColor','none'); XLim = get(gca,'XLim'); YLim = get(gca,'YLim'); ZLim = get(gca,'ZLim'); L(1)= light('Position',[XLim(2),YLim(2),ZLim(2)],'Color',[.5 .5 .5],'Style','local'); L(2)= light('Position',[XLim(1),YLim(1),ZLim(2)],'Color','w','Style','local'); xlabel(S1.var.name); ylabel(S2.var.name); zlabel(S3.var.name); if nargout>0 varargout{1} = h; varargout{2} = L(:); end