使用具有指定纵坐标范围的ezplot

时间:2013-08-07 08:02:49

标签: matlab

我有一个符号功能,我正在用ezplot绘图:

  ezplot(f, [0,1]);

我找不到指定y值(ordniate)来绘制此函数的方法。但是,我希望f在[0,1]中绘制为x,在[0,1]中绘制y。默认的ezplot在[0,20]或类似的东西中绘制y的函数。如何指定y范围?

这是我的功能(在q中):

 ((490*q^3 - 1300*q^2 + 1080*q - 240)^2/(9*(240*q - 300*q^2 + 90*q^3)^2) - (655*q^3 - 1570*q^2 + 1160*q - 240)/(3*(90*q^3 - 300*q^2 + 240*q)))/((10*q^2 - 7*q^3)/(480*q - 600*q^2 + 180*q^3) - (1080*q - 1300*q^2 + 490*q^3 - 240)^3/(27*(240*q - 300*q^2 + 90*q^3)^3) + (((10*q^2 - 7*q^3)/(480*q - 600*q^2 + 180*q^3) - (1080*q - 1300*q^2 + 490*q^3 - 240)^3/(27*(240*q - 300*q^2 + 90*q^3)^3) + ((1080*q - 1300*q^2 + 490*q^3 - 240)*(1160*q - 1570*q^2 + 655*q^3 - 240))/(6*(240*q - 300*q^2 + 90*q^3)^2))^2 - ((1080*q - 1300*q^2 + 490*q^3 - 240)^2/(9*(240*q - 300*q^2 + 90*q^3)^2) - (1160*q - 1570*q^2 + 655*q^3 - 240)/(720*q - 900*q^2 + 270*q^3))^3)^(1/2) + ((1080*q - 1300*q^2 + 490*q^3 - 240)*(1160*q - 1570*q^2 + 655*q^3 - 240))/(6*(240*q - 300*q^2 + 90*q^3)^2))^(1/3) - (490*q^3 - 1300*q^2 + 1080*q - 240)/(3*(90*q^3 - 300*q^2 + 240*q)) + ((10*q^2 - 7*q^3)/(2*(90*q^3 - 300*q^2 + 240*q)) - (490*q^3 - 1300*q^2 + 1080*q - 240)^3/(27*(240*q - 300*q^2 + 90*q^3)^3) + (((10*q^2 - 7*q^3)/(2*(90*q^3 - 300*q^2 + 240*q)) - (490*q^3 - 1300*q^2 + 1080*q - 240)^3/(27*(240*q - 300*q^2 + 90*q^3)^3) + ((490*q^3 - 1300*q^2 + 1080*q - 240)*(655*q^3 - 1570*q^2 + 1160*q - 240))/(6*(240*q - 300*q^2 + 90*q^3)^2))^2 - ((490*q^3 - 1300*q^2 + 1080*q - 240)^2/(9*(240*q - 300*q^2 + 90*q^3)^2) - (655*q^3 - 1570*q^2 + 1160*q - 240)/(3*(90*q^3 - 300*q^2 + 240*q)))^3)^(1/2) + ((490*q^3 - 1300*q^2 + 1080*q - 240)*(655*q^3 - 1570*q^2 + 1160*q - 240))/(6*(240*q - 300*q^2 + 90*q^3)^2))^(1/3)

2 个答案:

答案 0 :(得分:1)

来自the docs

ezplot(fun2,[xmin,xmax,ymin,ymax])

所以我猜你的情况就是

ezplot(f, [0,1,0,1])

但是假设f是隐式函数。所以你必须这样写。例如,将显式函数f = @(x) x写为隐式函数并将其绘制在0和1之间:

f = @(x,y) y - x;
ezplot(f, [0,1,0,1])

所以基本上只需将其重写为y - 无论您在假设f是明确的之前有什么。如果它是隐含的,那么你可以直接指定y轴限制。

对于您的示例,将注释中的显式函数写为隐式函数:

f = @(x,y) = y - (x^2-x^(3/2)+...)

答案 1 :(得分:1)

使用q可以评估字符串中写入的ezplot函数,但使用plot函数可以更好地控制绘图属性。例如,您可以设置XlimYLim属性。

这是一段代码

%evaluate function and plot
f = ' ((490*q^3 - 1300*q^2 + 1080*q - 240)^2/(9*(240*q - 300*q^2 + 90*q^3)^2) - (655*q^3 - 1570*q^2 + 1160*q - 240)/(3*(90*q^3 - 300*q^2 + 240*q)))/((10*q^2 - 7*q^3)/(480*q - 600*q^2 + 180*q^3) - (1080*q - 1300*q^2 + 490*q^3 - 240)^3/(27*(240*q - 300*q^2 + 90*q^3)^3) + (((10*q^2 - 7*q^3)/(480*q - 600*q^2 + 180*q^3) - (1080*q - 1300*q^2 + 490*q^3 - 240)^3/(27*(240*q - 300*q^2 + 90*q^3)^3) + ((1080*q - 1300*q^2 + 490*q^3 - 240)*(1160*q - 1570*q^2 + 655*q^3 - 240))/(6*(240*q - 300*q^2 + 90*q^3)^2))^2 - ((1080*q - 1300*q^2 + 490*q^3 - 240)^2/(9*(240*q - 300*q^2 + 90*q^3)^2) - (1160*q - 1570*q^2 + 655*q^3 - 240)/(720*q - 900*q^2 + 270*q^3))^3)^(1/2) + ((1080*q - 1300*q^2 + 490*q^3 - 240)*(1160*q - 1570*q^2 + 655*q^3 - 240))/(6*(240*q - 300*q^2 + 90*q^3)^2))^(1/3) - (490*q^3 - 1300*q^2 + 1080*q - 240)/(3*(90*q^3 - 300*q^2 + 240*q)) + ((10*q^2 - 7*q^3)/(2*(90*q^3 - 300*q^2 + 240*q)) - (490*q^3 - 1300*q^2 + 1080*q - 240)^3/(27*(240*q - 300*q^2 + 90*q^3)^3) + (((10*q^2 - 7*q^3)/(2*(90*q^3 - 300*q^2 + 240*q)) - (490*q^3 - 1300*q^2 + 1080*q - 240)^3/(27*(240*q - 300*q^2 + 90*q^3)^3) + ((490*q^3 - 1300*q^2 + 1080*q - 240)*(655*q^3 - 1570*q^2 + 1160*q - 240))/(6*(240*q - 300*q^2 + 90*q^3)^2))^2 - ((490*q^3 - 1300*q^2 + 1080*q - 240)^2/(9*(240*q - 300*q^2 + 90*q^3)^2) - (655*q^3 - 1570*q^2 + 1160*q - 240)/(3*(90*q^3 - 300*q^2 + 240*q)))^3)^(1/2) + ((490*q^3 - 1300*q^2 + 1080*q - 240)*(655*q^3 - 1570*q^2 + 1160*q - 240))/(6*(240*q - 300*q^2 + 90*q^3)^2))^(1/3)';
h=ezplot(f,[0 1]);

%get X and Y data
X = get(h,'XData');
Y = get(h,'YData');

%plot X and Y over the ezplot
plot(X,Y)
set(gca, 'XLim', [0 1], 'YLim', [0 2.5]);