看板 MATLAB 關於我們 聯絡資訊
若假設有一拋物曲面 型式為 z=x.^2+(y-1).^2 如何繪製其在 r<=2.2 之範圍內的3D曲面 (r.^2= x.^2+y.^2 亦即是個極作標) 我剛開始的程式如下: x=linspace(-2.2,2.2) y=linspace(-2.2,2.2) [xx,yy]=meshgrid(x,y) z=xx.^2+(yy-1).^2 mesh(x,y,z) 但是顯而易見的 會連r>2.2的範圍也畫進去 所以後來把y的部分改成 y=linspace(-(2.2.^2-x.^2).^0.5,(2.2.^2-x.^2).^0.5) 不過很顯然的 不能這樣亂改...= = 之後又改成 r=linspace(0,2.2) theta=linspace(-pi,pi) [rr,thetaa]=meshgrid(r,theta) x=cos(thetaa)*rr y=sin(thetaa)*rr z=x.^2+(y-1).^2 mesh(x,y,z) 還是不行 之後又試了幾種方法後就崩潰了...QQ 想請教各位大大 我這種問題該怎麼解決 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.201.84
ejialan:第一種在mesh前多加z(xx.^2+yy.^2>2.2^2)=nan; 05/23 00:02
ejialan:第二種 x=cos(thetaa).*rr; y=sin(thetaa).*rr; 05/23 00:03