数学建模社区-数学中国
标题:
急啊!!!matlab程序一直死循环不知道什么原因。
[打印本页]
作者:
qiandongdong
时间:
2014-8-21 21:15
标题:
急啊!!!matlab程序一直死循环不知道什么原因。
如题。
( p; V) a* |/ }: g$ N) K
主程序:
0 P$ b9 ]) Q/ ?0 y, E" A/ g" _; r
global a
* Z. K6 X3 h& |) @( ~, O* }5 h
jg=[];c=[];a=xlsread('dytjg.xls');r=a;
; p1 @/ w, F% F1 I5 G. m
for i=1:80
+ G; _2 w# R% [ l5 F
[g,t]=fxjd(i);
2 T$ i0 W- B; z4 W/ B* G4 Z
lg=1;
! e2 v+ ?3 X O5 J( N
[kl,k]=find(a==i);
) V) r- e% n3 D' X) t$ |/ o' W
a(:,k)=0;
2 J" b) Y0 J1 |$ D! J; t2 z( C7 i c
for q=1:t
' E/ a2 f& P( D4 e) p1 C4 x' q
gg=g(q);
F( z1 C3 R/ d" \. i" d, c0 R" S
b=[];j=1;
7 e. }2 Q# ^ j: O
while j<=lg
! `7 G1 Q+ e2 h ]
b=gg(j);ut=0;
, P7 Y; b. O/ V
[p,ut]=fxjd(gg(j));
7 q3 W& _3 Z1 s& S0 c- W8 `
l=1;
6 i) H( r2 W* }+ `/ ?- A2 }6 Y" r, i
while l<=ut
. x: k5 X$ l& y1 P
js=find(b==p(l));
9 P* [6 Z9 y) c/ e6 L7 }
if isempty(js)
/ O+ [* ]; L: I1 s+ b
b=[b,p(l)];
Q9 B3 G' D, p+ T
gg=[gg,p(l)];
* u6 R( g0 \+ G Y' g. N5 D8 K' t
lg=lg+1;
0 U' _0 X0 S# q1 T
end
8 p {- k& n& }' K
l=l+1;
) V1 u2 _+ S& ]4 a/ B
end
% _6 Y) U& u( x/ i
j=j+1;
) v. I/ l" h8 }/ X
end
" Y. F7 U/ S& A/ Y& _: D
c=[c,length(b)];
% H3 P; O$ G; p' b2 O* h+ G9 V
lg=1;
1 V J6 e) v+ M4 m0 [ a& f
t=t+1;
. S8 p+ R, F" |' G: K8 b
gg=[];
2 {1 x1 F( e3 E
end
. i* J; H" |! X) c6 E T
uu=max(c);
3 W* W3 S; c; V
c=[];
) c( G4 `* o- X
if (uu/79.0)<0.9
8 ]3 `8 ?3 y; G0 g7 n0 a5 Y
jg=[jg,i];
( b( V8 B; ]7 |# m4 ^
end
- G4 i' ^" ]2 F4 v
a=r;
4 t( f5 q; ?& s k/ O% R4 C; _4 O
end
0 e R$ A& A, a8 j6 B6 o
函数:
; g* L C m9 f
function [y,x1]=fxjd(x);
% Q$ D- ]; s9 r5 U! q
global a
+ |4 q- N1 C. p
[p,l]=find(a==x);
" ]2 d& N" M; B! Q" q4 a1 ?7 L1 f
x1=length(p);
% Y5 N. M$ g8 a
for o=1:x1
& ]* Z) X& P, l0 ^5 ~4 H. @; ]
if p(o)==1
6 _$ @( g8 \% O
y(o)=a(2,l(o));
$ Y! t7 ^! y$ r, K0 V. ~' U6 ?3 ]
else
( d" e6 a2 i$ z0 J6 ^: h/ b
y(o)=a(1,l(o));
9 g! D" Q* G+ D; I
end
8 C9 z$ w; f1 g
end
2 b: l! _" M4 `3 d) N( I
if isempty(p)
; c, `. u; D; D" D: O4 L' S3 m
y=[];x1=[];
) D6 j& H. ^% e3 x: A1 U: b
end
! a5 ]& r4 C! C1 d' ?& p
" n" K9 A) e+ z* h( d% v
matlab软件提示‘gg=[gg,p(l)];’这句有问题,但是不懂什么意思,求助前辈们,希望能帮帮忙。
8 E A) s+ a) _( O+ C5 Z5 t- h* a
, \2 J% P N; l5 O
" N; V' B& ? m# R" B2 N+ _! |
3 U) L, h( I, H u# c
作者:
madio
时间:
2014-8-22 10:36
你把数据文件也传上来,要不没法实验,你这个是做什么的程序?出现死循环就一定是while循环出的问题,你可以把某句后面的分号去掉,这样就可以显示一些中间变量的值,你就可以知道哪里出了问题
作者:
qiandongdong
时间:
2014-8-22 18:20
是做一个遍历树的程序,不过已经解决了,那个去分号的办法确实不错,谢谢哈~
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5