数学建模社区-数学中国
标题:
急啊!!!matlab程序一直死循环不知道什么原因。
[打印本页]
作者:
qiandongdong
时间:
2014-8-21 21:15
标题:
急啊!!!matlab程序一直死循环不知道什么原因。
如题。
& o0 d$ c3 h0 \; S
主程序:
. ?# G& y& o+ m8 D9 Q
global a
! N: w0 U1 P3 m, r
jg=[];c=[];a=xlsread('dytjg.xls');r=a;
+ H, S9 f( ]* v- x6 S3 P' m
for i=1:80
7 H+ r8 `3 Q5 B4 v" L& ]/ B- c* P, f2 N
[g,t]=fxjd(i);
t1 m6 f, ?8 ] w
lg=1;
8 ]7 c7 _/ p# R% x s# V
[kl,k]=find(a==i);
$ G+ j7 x8 j. H" g6 N
a(:,k)=0;
3 D/ \) t% Q9 a) k: A
for q=1:t
3 N, m" K3 R: W: \+ X$ d: U* P0 g
gg=g(q);
1 J0 h/ t0 n: n4 f
b=[];j=1;
$ [' J. R0 X7 G% p; b; T
while j<=lg
, ]; Z# f9 @6 y3 x+ s7 k$ h
b=gg(j);ut=0;
2 b2 p" o/ m, C, Z- A9 P/ f" \
[p,ut]=fxjd(gg(j));
9 N* \: e) H- c/ d
l=1;
' B% d9 v) b7 ]+ Y9 C' v# _
while l<=ut
+ |0 W# Y% z4 K/ U
js=find(b==p(l));
1 n0 I0 e1 k# w( l! l7 C
if isempty(js)
# D5 E. u0 e: `0 ^
b=[b,p(l)];
/ I6 F1 z( w. W. H5 V6 I4 g
gg=[gg,p(l)];
* _8 K% \1 V3 o8 L4 N- e1 Y5 X6 l
lg=lg+1;
) [. T9 @, b5 B% E3 Z6 e
end
1 ? L# O# G; U2 g% e' d
l=l+1;
- N' W8 H$ L& Y: F. n# @! ^- w9 }5 m$ \+ T
end
8 z5 O4 I; h) J* A" C* j
j=j+1;
* y5 G5 _ Y! C' g, J: P
end
# q& h! b) w& S& Y ?' ?3 y7 y
c=[c,length(b)];
+ O2 [! z5 e( K- _. H
lg=1;
* ?: |; I. d6 ^4 F; c5 W: h
t=t+1;
) ]6 {2 u) A9 u
gg=[];
" V) |1 X+ s! S, u; @! M: u
end
4 o, \. O! l ^% d _; I) w) L
uu=max(c);
) U& J8 F2 C! j
c=[];
+ v; U, w1 Y# x
if (uu/79.0)<0.9
, G* }* o- D" n- `; R: `- p
jg=[jg,i];
2 M$ Y2 |5 L$ E" ~2 p
end
6 F+ f0 N0 f* z$ ^
a=r;
. l; f0 u' ~! |
end
0 o$ r- @* S1 x% `
函数:
1 t, g& @* ?" Q7 U' ]$ ?
function [y,x1]=fxjd(x);
9 S% X9 }% u% M0 U5 S F2 ~
global a
2 ]& d3 a$ r' i8 R0 D: i' f
[p,l]=find(a==x);
" \) @' p/ }" c# L6 S* H& v
x1=length(p);
, |! P A7 E0 g& G$ S* r
for o=1:x1
- f! @3 H0 m& J
if p(o)==1
7 J5 Q3 @0 g- C# o; n$ l4 }6 n4 ]
y(o)=a(2,l(o));
) c4 B; k7 {" h5 F6 O; G
else
/ v7 c- u ^4 O, s9 U+ H9 V7 C. Z8 y
y(o)=a(1,l(o));
3 ^+ }* `& {2 ~2 `) F) V
end
6 i" o6 {; q2 D0 i. c* L
end
" a. h8 ]- D5 s
if isempty(p)
$ A: ?9 x7 j$ ?/ \0 _
y=[];x1=[];
! {- |+ ?& T+ Q9 x
end
* s, G5 O' A5 g$ [
# p0 s% c- S. y: [& g4 ]0 P! ?9 G+ ^
matlab软件提示‘gg=[gg,p(l)];’这句有问题,但是不懂什么意思,求助前辈们,希望能帮帮忙。
g7 Q% T5 f$ U
" z& N5 {3 @+ }% J9 l
) F% g5 G4 g( {2 ^7 k
, N. @8 A+ l: U" z
作者:
madio
时间:
2014-8-22 10:36
你把数据文件也传上来,要不没法实验,你这个是做什么的程序?出现死循环就一定是while循环出的问题,你可以把某句后面的分号去掉,这样就可以显示一些中间变量的值,你就可以知道哪里出了问题
作者:
qiandongdong
时间:
2014-8-22 18:20
是做一个遍历树的程序,不过已经解决了,那个去分号的办法确实不错,谢谢哈~
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5