matlab中如何画z=1-sqrt(1-8/(y*x.^2))函数的三维图,x取值在0.55到2,y取值在4到24
参照网上例子稍微做了一点简化,将x,y取值都限制在0.4到2.4,y直接乘以10.源代码如下t=0.4:0.05:2.4;[x,y]=meshgrid(t);z=1-sq...
参照网上例子稍微做了一点简化,将x,y取值都限制在0.4到2.4,y直接乘以10.
源代码如下
t=0.4:0.05:2.4;
[x,y]=meshgrid(t);
z=1-sqrt(1-8/(10*x.^2.*y));
mesh(x,y,z);
figure;
surf(x,y,z);
提示Error using ==>mrdivide
Matrix dimensions must agree.
开始以为是扩大了x取值导致开根号产生了复数的问题(开根号里还有常数系数我在这里略去了),但z=8/(10*x.^2.*y)也是同样的报错。我将变量x,y从分母拿出来画z=10*x.^2.*y就一切正常,为何x,y一在分母就会报错。这个函数要怎么写才正确,求高手指点
已解决,将x和y都按相应区间取值了,函数应写成z=1-sqrt(1-8./(10*x.^2.*y))。现在问题是x与y也是相关的,导致根据x取值不同,y取值区间也会变,不然会提示存在复数结果。这个就太复杂了,不考虑了。 展开
源代码如下
t=0.4:0.05:2.4;
[x,y]=meshgrid(t);
z=1-sqrt(1-8/(10*x.^2.*y));
mesh(x,y,z);
figure;
surf(x,y,z);
提示Error using ==>mrdivide
Matrix dimensions must agree.
开始以为是扩大了x取值导致开根号产生了复数的问题(开根号里还有常数系数我在这里略去了),但z=8/(10*x.^2.*y)也是同样的报错。我将变量x,y从分母拿出来画z=10*x.^2.*y就一切正常,为何x,y一在分母就会报错。这个函数要怎么写才正确,求高手指点
已解决,将x和y都按相应区间取值了,函数应写成z=1-sqrt(1-8./(10*x.^2.*y))。现在问题是x与y也是相关的,导致根据x取值不同,y取值区间也会变,不然会提示存在复数结果。这个就太复杂了,不考虑了。 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询