2015-11-05 84 views
1

我想在同一个图中绘制2个函数,以便可视化一个函数及其约束1,以便我可以更好地理解最大值该函数的范围内的约束函数是。在Matlab中用不同颜色绘制两个函数

目前,我使用ezsurf一次绘制一个函数。

syms x y 
ezsurf(5 - x^2 - 1/2*y^2); 

和我的约束功能是

ezsurf(x + y - 2); 

但是这只能说明约束函数的曲线图(第二个)。

是否有可能在同一图表中可视化,最好使用不同的颜色?

回答

2

加上hold on后的第一个阴谋。

保留在当前坐标轴上的坐标图,以便添加到坐标轴上的新坐标图不会删除现有坐标图。新绘图根据轴的ColorOrder和LineStyleOrder属性使用下一种颜色和线条样式。 MATLAB调整轴限制,刻度线和刻度标签以显示全部数据。

延迟将保持状态设置为关闭,以便添加到轴的新图清除现有图并重置所有轴属性。添加到轴的下一个绘图使用基于轴的ColorOrder和LineStyleOrder属性的第一种颜色和线条样式。这是默认行为。

持有全部是持有。 .....查看更多here

这里是你如何控制不同势的颜色各面:

colormap([parula(64);gray(64)]) 

syms x y 
h(1)=ezsurf(5 - x^2 - 1/2*y^2); 
Z=(get(h(1),'zdata')); 
hold on 
h(2)=ezsurf(x + y - 2); 


m = 64; % 64-elements is each colormap 

cmin = min(Z(:)); 
cmax = max(Z(:)); 
% CData for surface1 
C1 = min(m,round((m-1)*(Z-cmin)/(cmax-cmin))+1); 
% CData for surface2 
C2 = 64+C1; 

% Update the CDatas for each object. 
set(h(1),'CData',C1); 
set(h(2),'CData',C2); 

% Change the CLim property of axes so that it spans the 
% CDatas of both objects. 
caxis([min(C1(:)) max(C2(:))]) 

enter image description here

+0

你能做到这一点,而不符号工具箱即无[SYMS(HTTP: //uk.mathworks.com/help/symbolic/syms.html) – kkuilla

+0

你可以使用'surf'而不是'ezsurf',并且必须使用'meshgrid'定义'x,y'网格...... – bla

相关问题