honyan 发表于 2009-6-29 20:16

新手请教一个错误,请牛人帮忙,谢谢

程序出现错误??? Error using ==> reshape
To RESHAPE the number of elements must not change.
Error in ==> sym.maple at 94
      result = reshape(result,size(varargin{3}));
Error in ==> sym.int at 51
   r = reshape(maple('map','int',f(:),),size(f));
Error in ==> kk at 18
            T=int(Wk*Wl,y,0,L);

搞了几天不知道错误原因,恳求大家帮忙分析一下。下面是我的程序(求出B矩阵6*6):


clear
clc
c=1.829;b=c/2;L=6.096;m=35.72;Iy=8.643;Sy=6.524;EI=9.753e+6;GJ=0.9877e6;ro=1.29;a=-0.5;
Mh=0.5;
Lh=0.9423-0.5129*i;
La=0.1858-0.9841*i;
Ma=0.3750-0.5000*i;
Mthi=pi*ro*b^4*(Ma-La*(1/2+a)-Mh*(1/2+a)+Lh*(1/2+a)^2);
Lwi=pi*ro*b^2*Lh;
omigaw=;                                          %前面都是定义一些参数
syms y
for k=1:6
    for l=1:6
      if k<=3&&l<=3
            Wk=(sin(L*omigaw(k))-sinh(L*omigaw(k)))*(sin(omigaw(k)*y)-sinh(y*omigaw(k)))+(cos(L*omigaw(k))+cosh(L*omigaw(k)))*(cos(y*omigaw(k))-cosh(y*omigaw(k)));
            Wl=(sin(L*omigaw(l))-sinh(L*omigaw(l)))*(sin(omigaw(l)*y)-sinh(y*omigaw(l)))+(cos(L*omigaw(l))+cosh(L*omigaw(l)))*(cos(y*omigaw(l))-cosh(y*omigaw(l)));   
            T=int(Wk*Wl,y,0,L);
            T=double(T);
            B(k,l)=(m+Lwi)*T;
      elseif k>3&&l>3
                Thitak=sin(omigaa(k-3)*y);
                Thital=sin(omigaa(l-3)*y);
                T=int(Thitak*Thital,y,0,L);
                T=double(T);
                B(k,l)=(Iy+Mthi)*T;
      else
            B(k,l)=0;
      end
    end
end

[ 本帖最后由 honyan 于 2009-6-29 20:40 编辑 ]

ChaChing 发表于 2009-6-29 21:04

这方面不熟练!
没空探究为何报错, 仅先瞄下直觉LZ可不使用symbolic
直接使用数值不行吗? (quad)

friendchj 发表于 2009-6-29 21:25

回复 楼主 honyan 的帖子

直接运行,好像很费时间,改成
for k=1:1
    for l=1:1
……
得到
>> B

B =

2.1886e+003 -9.7771e+001i
改成
for k=1:1
    for l=1:2
……
一直处于busy
我在2008a版本试的。

honyan 发表于 2009-6-30 09:39

回复楼上

for k=1:1
      for l=1:1
……
可以得到B和你的一样
但改成
改成
for k=1:1
    for l=1:2
……
就出现上面的错误
页: [1]
查看完整版本: 新手请教一个错误,请牛人帮忙,谢谢