2
3 d劇情,我想得出以下功能的MATLAB:
f(x,y) = sqrt(1-x^2-4y^2) ,(if (x^2+4*y^2) <=1)
錯誤顯示在MATLAB
= 0 ,otherwise.
我寫在MATLAB下面的代碼:
x=0:0.1:10;
y=0:0.1:10;
z=x.^2+4*y.^2;
if (z <=1)
surf(x,y,z);
else
surf(x,y,0);
end
但顯示以下錯誤:
surface: rows (Z) must be the same as length (Y) and columns (Z) must be the same as length (X)
我該如何避免此錯誤...
作爲新的MATLAB的,我真不不明白爲什麼我們在這裏創建x-grid和y-grid ....我沒有得到它...可以請這個幫忙.. – coool 2014-10-10 08:31:13
@coool。它不是特定於Matlab的。 「表面」必須被定義爲相對於座標的2D平面的值Z.你不能在'line'上定義表面。查看['surf'](http://www.mathworks.co.uk/help/matlab/ref/surf.html)文檔,還可以閱讀[創建網格和曲面圖](http ://www.mathworks.co.uk/help/matlab/learn_matlab/creating-mesh-and-surface-plots.html) – Hoki 2014-10-10 08:35:23
@coool對於要計算每個(x,y)z值的曲面圖)座標。這意味着z將是矩陣。爲了使用元素方式乘法運算''*',你需要有x,y的矩陣。 'meshgrid'爲你的'x'和'y'向量創建矩陣。實際上,它只是在y方向重複x矢量,反之亦然。請看看評論中提到的@Hoki鏈接。 – Nick 2014-10-10 08:37:58