![]() |
急求matlab高手!
我现在想实现这样一个功能:
画出函数z=x^2.*y^2在区域y-2x-1<=0 和y+x-1<=0 和y-1/2x-1/2>=0上的图 像,请问如何实现,谢谢啦!:) |
回复: 急求matlab高手!
你可以用逻辑判断选择绘图区域,以下是我写的,绘图精度你可以自己调。
>> [x,y]=meshgrid(-10:0.05:10,-10:.05:10); >> z=(x.^2+y.^2)*((y-2*x-1<=0)&(y+x-1<=0)&(y-0.5*x-0.5>=0)); >> mesh(z),pause 如有问题可联系我,QQ:602561167 |
回复: 急求matlab高手!
谢谢,我刚学,好多地方不懂,我想问问,本来z=x.^2.*y.^2,
怎么变成了z=x.^2+y.^2呢?还有,为什么要乘以三个限制条件呢,我用if语句判断可以吗? |
回复: 急求matlab高手!
因为在这里x,y是一个矩阵,所以要用.^来表示是对矩阵的每一个元素进行运算。用逻辑表达式其实在这里只是一种常用的技巧,我们为了选择区域,我们可以将区域以外的数置0,这样就可以了,应该还有其它的方法,只是我也不知道,其实我也是初学着。
|
回复: 急求matlab高手!
lz if语句是可以实现的
2楼画的是抛物面 lz的定义函数z=x^2.*y^2是什么意思? 不是想画抛物面么? |
回复: 急求matlab高手!
我想画的是Z=x2*y2(也就是x的平方乘以y的平方)在一个三角形区域上的图像,而不是整个二维平面上的图像,我用的是if语句,但是发现我的if语句根本就没有执行,我把我的语句贴出来,麻烦帮忙看看哪里出问题了,谢谢!
x=-1:0.01:1; y=x; [X,Y]=meshgrid(x,y); n1=length(X); n2=length(Y); for i = 1:n1 for j=1:n2 if ((Y(j)<=2*X(i)+1)&& (Y(j)<=1-X(i))&&(Y(j)-0.5*X(i)+0.5>=0)) Z(i,j)=X(i).^2.*Y(j).^2; else Z(i,j)=0; end; end; end; >> mesh(X,Y,Z); |
所有时间均为北京时间。现在的时间是 11:21。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.