| Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) | 
![]()  | 
	
| 		
			
			 | 
		#1 | 
| 
			
			 初级会员 
			
			
			
			注册日期: 2010-11-16 
				
				
				
					帖子: 8
				 
				
				
				声望力: 0 ![]()  | 
	
	
	
		
		
			
			 
			
			HELP 中有介绍:“subs(S,old,new),If old and new are cell arrays of the same size, each element of old is replaced by the corresponding element of new.”但是当old 和new 中有向量时总是出现错误,求求那位智者能给予解答!!! 
		
		
		
		
		
		
		
		
			syms t t0=1/3*pi; y=[2;2;2]; y0=[1;0;0]; S=sin(t)*y; subs(S,{t,y},{t0,y0}) ans = 3^(1/2) 3^(1/2) 3^(1/2) 答案应该是 3^(1/2)/2 0 0  
		此帖于 2011-01-15 19:56 被 xiaoyezi868 编辑。  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#2 | 
| 
			
			 高级会员 
			
			
			
			注册日期: 2008-05-13 
				
				年龄: 45 
				
					帖子: 232
				 
				
				
				声望力: 22 ![]()  | 
	
	
	
		
		
			
			 
			
			我的理解,subs里的old 和 new是这样的: 
		
		
		
		
		
		
			old 是 syms 定义的变量,而new是old的实例化,你的段程序里: y是一个实例,不是syms变量,因此,当你用t = sin(t0)*y;的时候,t的syms表示就是: [2*sin(t0);2*sin(t0);2*sin(t0)] 所以会得到你的那个结果,如果想得到你希望的结果,需要定义y为cell变量: syms t, y t0=1/3*pi; y0=[1;0;0]; S=sin(t)*y; subs(S,{t,y},{t0,y0}) 
				__________________ 
		
		
		
		
	工科'985'博士,(图像处理、分析及理解;模式识别;运动估计;数据分析等)定做程序、算法实现--qq:752105755  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#3 | |
| 
			
			 初级会员 
			
			
			
			注册日期: 2010-11-16 
				
				
				
					帖子: 8
				 
				
				
				声望力: 0 ![]()  | 
	
	
	
		
		
			
			 引用: 
	
 “??? Error using ==> sym.subs Elements of the substitution cell array must be of the same size.”是不是因为size(y)=1 1  | 
|
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#4 | 
| 
			
			 高级会员 
			
			
			
			注册日期: 2008-05-13 
				
				年龄: 45 
				
					帖子: 232
				 
				
				
				声望力: 22 ![]()  | 
	
	
	
		
		
			
			 
			
			S = sin(t)*y 提取t0和y0时,也就变成了S = sin(t0)*y0,这时候要满足矩阵乘法的要求的
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	工科'985'博士,(图像处理、分析及理解;模式识别;运动估计;数据分析等)定做程序、算法实现--qq:752105755  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#5 | 
| 
			
			 初级会员 
			
			
			
			注册日期: 2010-11-16 
				
				
				
					帖子: 8
				 
				
				
				声望力: 0 ![]()  | 
	
	
	
		
		
			
			 
			
			一个数和一个向量可以直接相乘的,MATLAB显示的结果最后是sin(t0)*y,而不是sin(t0)*y0,这是我最迷惑的。
		 
		
		
		
		
		
		
		
	 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 |