[x,y,z]=peaks(50); 
>> contour(x,y,z,20) 
>> hold on 
>> minz=min(min(z)); 
>> [i,j]=find(z==minz); 
>> minx=x(i,j); 
>> miny=y(i,j); 
>> plot(minx,miny,'bo','MarkerFaceColor',[0,0,0],'MarkerSize',12) 
上面是做最小值,最大值也是一样的.
将上述的min(min(z))换成max(max(z))即可 
至于鞍值,可能得费点尽(但只要你找到那个点.画图不是问题)
修改后大致用能.我只做最小值,最大值等,自己做吧.
>> [x,y]=meshgrid(-pi:0.05:pi);
>> z=x.^2+sin(x+y).*sin(x);
>> [zc,h] = contour(x,y,z,12); clabel(zc,h) 
hold on 
minz=min(min(z)); 
[i,j]=find(z==minz); 
minx=x(i,j); 
miny=y(i,j); 
plot(minx,miny,'bv','MarkerFaceColor',[0,0,0],'MarkerSize',10)
