| Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) | 
![]()  | 
	
| 		
			
			 | 
		#1 | 
| 
			
			 初级会员 
			
			
			
			注册日期: 2009-04-20 
				
				年龄: 43 
				
					帖子: 3
				 
				
				
				声望力: 0 ![]()  | 
	
	
	
		
		
			
			 
			
			我现在想实现这样一个功能: 
		
		
		
		
		
		
		
		
			画出函数z=x^2.*y^2在区域y-2x-1<=0 和y+x-1<=0 和y-1/2x-1/2>=0上的图 像,请问如何实现,谢谢啦!  
		此帖于 2009-04-20 16:27 被 miaomiao 编辑。  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#2 | 
| 
			
			 高级会员 
			
			
			
				
			
			注册日期: 2009-04-11 
				
				年龄: 38 
				
					帖子: 138
				 
				
				
				声望力: 19 ![]()  | 
	
	
	
		
		
			
			 
			
			你可以用逻辑判断选择绘图区域,以下是我写的,绘图精度你可以自己调。 
		
		
		
		
		
		
		
	>> [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  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#3 | 
| 
			
			 初级会员 
			
			
			
			注册日期: 2009-04-20 
				
				年龄: 43 
				
					帖子: 3
				 
				
				
				声望力: 0 ![]()  | 
	
	
	
		
		
			
			 
			
			谢谢,我刚学,好多地方不懂,我想问问,本来z=x.^2.*y.^2, 
		
		
		
		
		
		
		
	怎么变成了z=x.^2+y.^2呢?还有,为什么要乘以三个限制条件呢,我用if语句判断可以吗?  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#4 | 
| 
			
			 高级会员 
			
			
			
				
			
			注册日期: 2009-04-11 
				
				年龄: 38 
				
					帖子: 138
				 
				
				
				声望力: 19 ![]()  | 
	
	
	
		
		
			
			 
			
			因为在这里x,y是一个矩阵,所以要用.^来表示是对矩阵的每一个元素进行运算。用逻辑表达式其实在这里只是一种常用的技巧,我们为了选择区域,我们可以将区域以外的数置0,这样就可以了,应该还有其它的方法,只是我也不知道,其实我也是初学着。
		 
		
		
		
		
		
		
		
	 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#5 | 
| 
			
			 高级会员 
			
			
			
			注册日期: 2008-11-01 
				
				年龄: 39 
				
					帖子: 406
				 
				
				
				声望力: 27 ![]()  | 
	
	
	
		
		
			
			 
			
			lz if语句是可以实现的  
		
		
		
		
		
		
		
	2楼画的是抛物面 lz的定义函数z=x^2.*y^2是什么意思? 不是想画抛物面么?  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#6 | 
| 
			
			 初级会员 
			
			
			
			注册日期: 2009-04-20 
				
				年龄: 43 
				
					帖子: 3
				 
				
				
				声望力: 0 ![]()  | 
	
	
	
		
		
			
			 
			
			我想画的是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);  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 |