2013-08-07 41 views
1

使用ezplot我有我與ezplot繪製一個象徵性的功能:與指定的座標範圍

ezplot(f, [0,1]); 

我無法找到一個方法來指定的y值(ordniate)繪製此功能。但是,我希望f在[0,1]中繪製x,在[0,1]中繪製y。默認的ezplot在[0,20]或者類似的東西中繪製我的函數。我如何指定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) 
+0

您提供的「F」功能的例子嗎? – marsei

回答

1

你寫在一個字符串可以使用ezplot進行評估,但你將有一個更好的控制q功能繪圖屬性使用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]); 
+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)+...) 
+0

這正是問題所在:我的函數f是一個非常複雜的函數,我從其他地方獲得輸入。它的形式是f(x)= x^2-x ^(3/2)+ ...我希望我不必操縱那個巨大的函數,只是按原樣繪製它。 –

+0

@ tw-S儘管它很容易操作,它只是'f(x,y)將等於'y' - 'f(x)',但是您必須複製並粘貼您的'x^2 -... ',而不是'f(x)' – Dan

+0

好吧,如果我像你說的那樣複製和粘貼表達式,那麼圖表就是空的,我得到這個警告:警告:函數無法評估數組輸入;矢量化該函數可以加速其評估並避免需要循環數組元素。 –