pwangeng 发表于 2007-5-17 14:28

求助:程序错误

各位大虾,我写了个函数 代码如下:
function d=fun(t,y,w,B)
N=length(y);
wi=w;

m1=4;         m2=32.1;   
e=0.00005;
c=0.00011;
k=2.5e7;
delta2=0.4;
c1=1050;
c2=2100;
k1=7.5e7;
k2=2.5e9;
cs1=350;
cs2=500;
M=[m1    0   0    0;
      0   m1    0    0;
      0   0   m2   0;
      0   0   0    m2; ];
C=[c1    0   -c1   0;
      0   c1+cs   0    -c1;
      -c2    0   c2   0;
      0    -c2    0    c2; ];

K=[   k       0       -k      0;
      0       k+ks      0      -k;
      -k    0       k   0;
      0   -k      0   k; ];

ox1=y(1);
oy1=y(2);
odx1=y(5);
ody1=y(6);
ox2=y(3);
oy2=y(4);
odx2=y(7);
ody2=y(8);
fx=oilx( ox1, oy1, odx1, ody1, w, B);
fy=oily( ox1, oy1, odx1, ody1, w, B);

if oy1<0
    cs=cs2;
    ks=k2;
else if(oy1>=0)&(oy1<=delta2)
      cs=0;
      ks=0;
    else
         cs=cs1;
         ks=k1;
end

F=[   fx;
      fy-m1*9.81;
      m2*e*w^2*cos(t);
      m2*e*w^2*sin(t)-m2*9.81; ];
   
C=C/w;
K=K/w^2;
F=F/c/w^2;

for i=1:1:N/2
    y1(i,1)=y(i);
    y2(i,1)=y(i+N/2);
end

yy2=inv(M)*(F-C*y2-K*y1);
for i=1:1:N/2
    d(i)=y2(i,1);
    d(i+N/2)=yy2(i,1);
end

在主程序调用的过程中总是提示:

??? Error: File: fun.m Line: 83 Column: 4
This statement is incomplete.
我实在不清楚错在哪里了,大家帮帮我

pengweicai 发表于 2007-5-17 14:31

Line: 83 Column: 4
你把那句,找出来仔细看看。

eight 发表于 2007-5-17 14:37

原帖由 pwangeng 于 2007-5-17 14:28 发表 http://www.chinavib.com/forum/images/common/back.gif
各位大虾,我写了个函数 代码如下:
function d=fun(t,y,w,B)
N=length(y);
wi=w;

m1=4;         m2=32.1;   
e=0.00005;
c=0.00011;
k=2.5e7;
delta2=0.4;
c1=1050;
c2=2100;
k1=7.5e7;
k2=2.5 ...

else if是连在一起的

请多阅读 matlab 基础书,以及本版置顶贴:聚宝盆
页: [1]
查看完整版本: 求助:程序错误