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