| Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) | 
![]()  | 
	
| 		
			
			 | 
		#1 | 
| 
			
			 普通会员 
			
			
			
			注册日期: 2008-04-27 
				
				年龄: 39 
				
					帖子: 30
				 
				
				
				声望力: 18 ![]()  | 
	
	
	
		
		
			
			 
			
			程序: 
		
		
		
		
		
		
		
	a=3; x=solve('1+2+x+a=9') 结果: x=6-a 请问为什么不是3呢,也就是a在结果中为什么没被赋值? 请大家指点 谢谢!!  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#2 | 
| 
			
			 高级会员 
			
			
			
			注册日期: 2008-05-31 
				
				年龄: 38 
				
					帖子: 104
				 
				
				
				声望力: 20 ![]()  | 
	
	
	
		
		
			
			 
			
			solve中的是一个字符串表达式,用单引号括起来的,那么外面的任何变量都是赋不进此字符串的,则solve的结果也是以符号形式给出的,你可以看一下,你的结果的x的类型是sym型的,想把a=3赋进字符串有一个办法: 
		
		
		
		
		
		
		
	a=3; x=solve(['1+2+x+',num2str(a),'=9'],'x'); 结果是: x = 3 其中就是用num2str把a转换成字符了,达到赋值传递的目的。:redface:  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#3 | 
| 
			
			 普通会员 
			
			
			
			注册日期: 2008-04-27 
				
				年龄: 39 
				
					帖子: 30
				 
				
				
				声望力: 18 ![]()  | 
	
	
	
		
		
			
			 
			
			十分感谢!!
		 
		
		
		
		
		
		
		
	 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#4 | 
| 
			
			 普通会员 
			
			
			
			注册日期: 2007-08-07 
				
				
				
					帖子: 64
				 
				
				
				声望力: 21 ![]()  | 
	
	
	
		
		
			
			 
			
			a=3; 
		
		
		
		
		
		
		
	x=solve('1+2+x+a=9'); x=eval(x)  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 |