数学建模社区-数学中国
标题:
急啊!!!matlab程序一直死循环不知道什么原因。
[打印本页]
作者:
qiandongdong
时间:
2014-8-21 21:15
标题:
急啊!!!matlab程序一直死循环不知道什么原因。
如题。
/ w6 ]4 }0 r, H7 q2 n j& E
主程序:
8 w# e7 p0 c" m/ M2 W
global a
& M4 }8 L+ U5 S( x& \
jg=[];c=[];a=xlsread('dytjg.xls');r=a;
% s$ w' C( p. A9 n( }
for i=1:80
9 T* `6 s6 k: L. s0 d! {
[g,t]=fxjd(i);
9 A6 S6 J+ I# ^$ ~
lg=1;
* \' M" b8 S0 x% L* x
[kl,k]=find(a==i);
; W; _; P! }+ Z# l4 s) ]$ ~
a(:,k)=0;
4 N9 d3 O4 i' L) W3 ~0 k7 i
for q=1:t
/ J) t4 Q' W3 O/ S8 y A
gg=g(q);
9 o4 C( v6 U6 R
b=[];j=1;
, R7 r' x) y8 ?& A
while j<=lg
$ |7 L; a! k& J! J z! J2 L4 E
b=gg(j);ut=0;
3 A0 V' w N( C: t9 a/ t& [
[p,ut]=fxjd(gg(j));
9 ?3 o$ r% {$ j, g
l=1;
( L# F) ^+ N: H
while l<=ut
8 [: I$ b* ^% Z% ]% S
js=find(b==p(l));
0 a7 i6 {3 m4 P% [5 x/ {6 Y- v0 D
if isempty(js)
% Q- x. H$ V' @# J5 {* K
b=[b,p(l)];
3 F$ n" Z5 L# Q! k2 c: |
gg=[gg,p(l)];
. x% a1 @( s, c3 d8 ~$ t+ M
lg=lg+1;
4 l6 r) s. `* V- @/ G" h
end
2 w. f& w( z$ S3 Y7 U# Y' k# `
l=l+1;
9 m' [5 J) | X
end
V# A7 B* ^3 D4 G
j=j+1;
) U. M' t" t* ~( m& c: L" _
end
) n3 v6 q. \/ K" q) l
c=[c,length(b)];
; k8 n( i* ]# N4 S# e+ B4 }
lg=1;
* X" L* ^, g# K' W S. I3 a3 F
t=t+1;
* Q7 B$ a( [% P7 A
gg=[];
9 \" Z2 o1 ?! B5 `# l/ _
end
8 \" R) z5 p% {+ q* _9 N" {7 Z
uu=max(c);
5 V& t2 [3 o" `' ^8 B f
c=[];
4 R1 D( i1 f" |6 q
if (uu/79.0)<0.9
7 A, f) E7 a/ v4 z2 G. C
jg=[jg,i];
6 Z2 a% q. a/ u. O) n* w4 z( _
end
2 q7 K+ P' f y
a=r;
7 l7 U6 |8 |( M# Z
end
- e: C8 g1 @, w* n9 a& `9 H. @
函数:
' d8 f! {1 ?' R: l0 @4 c
function [y,x1]=fxjd(x);
7 N/ C/ f) {! F' y2 x
global a
8 g9 K4 v! X4 @2 T, U
[p,l]=find(a==x);
" o: ]+ W6 c X# F1 L8 Y
x1=length(p);
' U* O2 `. s% c8 K; \- I9 _ U
for o=1:x1
% c$ Z4 A/ B* B8 N5 H+ y
if p(o)==1
' M d' H8 W O0 b: i; s
y(o)=a(2,l(o));
' Q& _/ ]' D& ? |$ U: K( Q
else
. n, }7 H: P% [, p5 y" f
y(o)=a(1,l(o));
7 m% T4 o) v$ S3 ]1 l" c2 x+ T
end
+ O" o8 f8 V" ~$ U# `* l- I
end
. P/ A6 D7 [9 S6 D
if isempty(p)
+ x. ]% B3 U2 p) W# ?3 F( p H
y=[];x1=[];
7 v) |( U3 Q( A1 c' u( {( W) {
end
. M1 N0 S$ Y0 U) e& I
0 S& Y; E( K A: r2 M
matlab软件提示‘gg=[gg,p(l)];’这句有问题,但是不懂什么意思,求助前辈们,希望能帮帮忙。
* Z6 Z" {% @0 U. F4 J
% M: ~ @2 C6 C# ]
; Y- K3 o/ \/ T* u
$ X0 J0 @8 W- k6 I: h* x; S% Q: d
作者:
madio
时间:
2014-8-22 10:36
你把数据文件也传上来,要不没法实验,你这个是做什么的程序?出现死循环就一定是while循环出的问题,你可以把某句后面的分号去掉,这样就可以显示一些中间变量的值,你就可以知道哪里出了问题
作者:
qiandongdong
时间:
2014-8-22 18:20
是做一个遍历树的程序,不过已经解决了,那个去分号的办法确实不错,谢谢哈~
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5