数学建模社区-数学中国
标题:
急啊!!!matlab程序一直死循环不知道什么原因。
[打印本页]
作者:
qiandongdong
时间:
2014-8-21 21:15
标题:
急啊!!!matlab程序一直死循环不知道什么原因。
如题。
% {5 ]0 i7 X+ v+ B
主程序:
9 V/ r; M/ v. C: L3 K
global a
# o3 A; H5 c7 S
jg=[];c=[];a=xlsread('dytjg.xls');r=a;
2 E: _# r7 `2 ]0 ~
for i=1:80
9 j- V5 _. e& @
[g,t]=fxjd(i);
' h3 S( o, V: ?- s4 x( v
lg=1;
U% l8 F; ]6 A+ Y" J6 D
[kl,k]=find(a==i);
# Y. ?$ M. T9 {/ A& \$ ?, r
a(:,k)=0;
% D6 K7 b+ ` u! H: b6 U+ P b7 Y# p
for q=1:t
' O; ~# |7 I2 H7 {6 v
gg=g(q);
* h( c) i6 F) d
b=[];j=1;
/ N6 I/ e9 r+ j2 y" R& p& }
while j<=lg
; j% Q) a+ S7 I T1 B9 r
b=gg(j);ut=0;
\* k( H3 }- W2 L* w
[p,ut]=fxjd(gg(j));
6 u$ W5 f1 n; M2 C- v
l=1;
) k6 A1 b* `$ P
while l<=ut
3 p$ b) ^5 I& Q c! q2 r& _( f7 M1 I
js=find(b==p(l));
9 S; u4 P% k, {3 M+ d/ X% C
if isempty(js)
# Y. |9 v2 ]5 {2 D+ k
b=[b,p(l)];
1 N8 n9 d: z" s" }
gg=[gg,p(l)];
9 \! S8 x8 L4 d" s
lg=lg+1;
- {# Z/ L: [ c* _, K) o5 u3 G
end
8 _, k2 z+ }0 y. d7 `- {1 @
l=l+1;
$ L. r: ^; T2 h' l: n* U. l) n. i
end
2 o _( I8 |! Z% w8 g' v& l
j=j+1;
" f7 Y0 q& P4 U9 t7 d
end
! F3 J5 F# N( e B$ @
c=[c,length(b)];
% N5 l+ J, N" H9 i; O+ E
lg=1;
+ z9 `( M# q1 ?2 n& i
t=t+1;
* f' c4 a+ q( l4 \5 F4 o
gg=[];
( a: j( [7 T& ^+ J
end
& E* m5 i9 h$ I4 l# y
uu=max(c);
1 K& l, N( l" t- y- ^6 L3 p
c=[];
7 P3 b% W. D& c) z6 v5 X, ~2 U- J9 |
if (uu/79.0)<0.9
' @1 }. N- S7 I0 w
jg=[jg,i];
+ D l2 W( t, G
end
# o5 \2 I2 `9 o8 A% b' O- B2 C
a=r;
1 P, f4 A( F% I9 D6 d* M' N2 v
end
+ D3 O0 G. J) I
函数:
3 O' ]. @; K0 v$ ^: ], W: j) c$ }0 i
function [y,x1]=fxjd(x);
, K. j, x1 P; ]" X
global a
4 o' R+ r+ Z" S f9 c/ N9 @1 }" D% M
[p,l]=find(a==x);
' M l/ J$ p t( }* A1 p1 ^
x1=length(p);
: ]; s Z1 G: {' ^ v
for o=1:x1
% p# v4 Q- ~; ~: ^: u; Y$ K
if p(o)==1
4 I6 [$ A& A I* ]
y(o)=a(2,l(o));
6 n/ [) O. o8 m% f; _; e; S% { E& G
else
1 ~3 o; S; r6 i3 D; s
y(o)=a(1,l(o));
) a( A# S2 K+ b1 ~
end
6 _; A ^6 ^/ z; a
end
8 o& d7 X* t- j" K: s
if isempty(p)
. X2 C' ]; B/ w$ C: h6 b/ a8 g
y=[];x1=[];
; r- D. r$ p" z9 N
end
/ a1 k3 f, w& r/ a. K( ~* a
6 d6 ]+ y& P# f9 |
matlab软件提示‘gg=[gg,p(l)];’这句有问题,但是不懂什么意思,求助前辈们,希望能帮帮忙。
+ j' r5 ?+ z0 ]
' S. Q+ {% `8 `" M& o
, I4 A9 F6 u! ^8 v$ Q* F8 A
, m5 _( Q' F' ]0 v7 K/ E0 C {7 z
作者:
madio
时间:
2014-8-22 10:36
你把数据文件也传上来,要不没法实验,你这个是做什么的程序?出现死循环就一定是while循环出的问题,你可以把某句后面的分号去掉,这样就可以显示一些中间变量的值,你就可以知道哪里出了问题
作者:
qiandongdong
时间:
2014-8-22 18:20
是做一个遍历树的程序,不过已经解决了,那个去分号的办法确实不错,谢谢哈~
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5