| Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) | 
|  | 
|  2008-03-19, 18:32 | #1 | 
| 初级会员 注册日期: 2008-03-19 年龄: 41 
					帖子: 3
				声望力: 0  |  [求助]错误帖出来了!哪位大哥,大姐帮小弟看看这个程序的错误啊! 
			
			ne=5; np=4; syms FX3 FY3 FX4 FY4; xyp=[0 6.4 0 0 10000 0;4.8 6.4 0 0 0 0;0 0 1 1 FX3 FY3;4.8 0 1 1 FX4 FY4] syms E element=[1 2 E 38e-4;1 3 E 5e-3;2 4 E 5e-3;1 4 E 65e-4;2 3 E 65e-4] kk=zeros(2*np,2*np); f=zeros(2*np,1); ElementSave=zeros(ne,3); for lop=1:ne i=element(lop,1); j=element(lop,2); x=xyp(i,1); y=xyp(i,2); z=xyp(j,1); v=xyp(j,2); dl=sqrt((y-x)^2+(v-z)^2); s=(v-z)/dl; c=(y-x)/dl; ea=element(lop,3)*element(lop,4)/dl; ElementSave(lop,1)=s; ElementSave(lop,2)=c; ElementSave(lop,3)=ea; ek=2e6*ea*[c*c, c*s, -c*c,-c*s; s*c, s*s, -c*s,-s*s; -c*c, -c*s, c*c, c*s; -c*s, -s*s, s*c, s*s]; kk(2*i-1:2*i,2*i-1:2*i)= kk(2*i-1:2*i,2*i-1:2*i)+ek(1:2,1:2); kk(2*i-1:2*i,2*j-1:2*j)= kk(2*i-1:2*i,2*j-1:2*j)+ek(1:2,3:4); kk(2*j-1:2*j,2*i-1:2*i)= kk(2*j-1:2*j,2*i-1:2*i)+ek(3:4,1:2); kk(2*j-1:2*j,2*j-1:2*j)= kk(2*j-1:2*j,2*j-1:2*j)+ek(3:4,3:4); end for lop=1:np f(2*lop-1,1)=f(2*lop-1,1)+xyp(lop,5); f(2*lop,1)=f(2*lop,1)+xyp(lop,6); if xyp(lop,3)>=1 kk(2*lop-1,2*lop-1)=10000*kk(2*lop-1,2*lop-1); end if xyp(lop,4)>=1 kk(2*lop,2*lop)=10000*kk(2*lop,2*lop); end end u=inv(kk)*f for lop=1:ne i=element(lop,1); j=element(lop,2); s=ElementSave(lop,1); c=ElementSave(lop,2); ea=ElementSave(lop,3); InnerForce=ea*((u(2*j-1)-u(2*i-1))*c+(u(2*j)-u(2*i))*s) end 错误信息是: ??? Error using ==> subsindex Function 'subsindex' is not defined for values of class 'sym'. Error in ==> you at 13 x=xyp(i,1); | 
|   |   | 
|  2008-03-19, 21:09 | #2 | 
| 高级会员 注册日期: 2007-07-26 年龄: 41 
					帖子: 268
				声望力: 25  |   
			
			请将错误信息贴出来……
		 | 
|   |   | 
|  2008-03-20, 08:16 | #3 | 
| 高级会员 注册日期: 2007-07-26 年龄: 41 
					帖子: 268
				声望力: 25  |   
			
			你的错误信息是指: 函数subsindex不能用syms类的变量来运算,我看你的程序不完整吧?怎么定义的E,FX3 FY3 FX4 FY4等在程序里没有出现呢? 在进行编程的时候如果不是特殊原因就不要定义为syms类…… | 
|   |   | 
|  2008-03-20, 18:56 | #4 | 
| 初级会员 注册日期: 2008-03-19 年龄: 41 
					帖子: 3
				声望力: 0  |  谢谢你啊 
			
			谢谢你啊,非常感谢,我知道了!可是我的程序没出现subsidex函数啊
		 | 
|   |   | 
|  2008-03-20, 20:58 | #5 | 
| 高级会员 注册日期: 2007-07-26 年龄: 41 
					帖子: 268
				声望力: 25  |   
			
			xyp=[0 6.4 0 0 10000 0;4.8 6.4 0 0 0 0;0 0 1 1 FX3 FY3;4.8 0 1 1 FX4 FY4] 可能是这里出错了,前面都是double型的,后面加上的是syms类,不能形成矩阵…… | 
|   |   |