数学建模社区-数学中国

标题: 急啊!!!matlab程序一直死循环不知道什么原因。 [打印本页]

作者: qiandongdong    时间: 2014-8-21 21:15
标题: 急啊!!!matlab程序一直死循环不知道什么原因。
如题。
$ @# t$ m2 P9 m; i主程序:
9 r( ^0 m/ ~" E4 p' z& |  S7 }# Pglobal a
9 k3 r& J9 F4 }" j* {. w& Hjg=[];c=[];a=xlsread('dytjg.xls');r=a;; _' _; J/ X1 A: ^7 }
for i=1:80* ?6 \8 j& r& k1 [) Q; `
    [g,t]=fxjd(i);
: z: M& X( B. i% m. B    lg=1;
& |. C6 k9 f# Y    [kl,k]=find(a==i);3 I, U' }( w/ C1 O& X7 g9 _0 Q
    a(:,k)=0;
: {1 t2 @# z1 r2 g. G) G" y    for q=1:t9 ~4 T* z' g( o. w
        gg=g(q);
  I4 ]# X! L; {8 D3 w/ X3 o        b=[];j=1;
* u+ R, v6 b9 X* ~7 U' s: p' P5 ~. [        while j<=lg
& q  B) A) J( M  V! ^" L+ M; i* u            b=gg(j);ut=0;1 H! ~5 Y) _6 j% w, d2 q/ x, }
            [p,ut]=fxjd(gg(j));
! ~, x& v' Q) x/ u$ i& Y' o            l=1;) `$ r/ [* J8 |/ B. f
            while l<=ut
$ S) X, m; U- D! L5 P$ J                js=find(b==p(l));
6 w; t& }) c6 p                if isempty(js)  j& P' a6 f7 r, u' N, o$ F8 D/ D) p
                    b=[b,p(l)];
+ ?& k6 d9 ?7 |" R) Q; d                    gg=[gg,p(l)];" w; ~) o& i( f5 Z( a# i# [/ H" |5 j
                    lg=lg+1;. F7 y; s0 o/ r: D, B# E# F
                end5 a+ m3 R! J3 I" z( H
                l=l+1;
- C1 H- ]* y+ b/ {0 H! d            end* T6 N/ t! H  O' b# z0 ^9 U6 w
            j=j+1;
  F: {. i, h, o% r$ O        end4 v5 A$ }6 q* p/ q# q) I% z
        c=[c,length(b)];
' i, \2 k, |( K, x        lg=1;% q& M5 Z+ F+ s1 }$ _( l
        t=t+1;
& B1 h( \$ i7 L& z/ Q        gg=[];
4 y9 L- q' L/ b0 r5 h( Y    end
, I5 p* v" k; s    uu=max(c);5 |$ q8 n& ^+ A& l9 T
    c=[];7 H4 P4 _# S1 W+ x$ t# K" h
    if (uu/79.0)<0.9
* z- r" `  V! z$ _. z        jg=[jg,i];/ S/ o: E3 ?4 m5 p* z/ [
    end2 u& Z6 _4 ^* d! U' ]2 \
    a=r;
, {3 r3 i# C0 gend1 K! w  j: w3 G' p) k/ H+ m
函数:
8 o0 G, N2 A3 W- d" C1 Ufunction [y,x1]=fxjd(x);
2 r4 G0 B5 f- f  C% Oglobal a
0 S0 K% }3 T: N[p,l]=find(a==x);7 I- W3 x8 v7 ]" F8 |+ L/ Y& k
x1=length(p);
2 Z' B! U. f$ R* P+ W& Wfor o=1:x1: O6 q0 q1 X- S6 t# d
    if p(o)==10 L2 Q3 F- u- f% x2 L
        y(o)=a(2,l(o));" v7 J  y: c+ v$ w5 }. Z6 C
    else
. Q4 m5 C* e/ f: a+ ?; g        y(o)=a(1,l(o));
* V1 [/ r/ R- ^; r, _. j$ h6 E    end
; |8 I7 I) ]7 ?7 Aend
" l8 Y' s( O- _, aif isempty(p)
9 N7 u% n  j3 t- z5 S" I3 G4 V    y=[];x1=[];
9 l3 @0 H. I' u7 h- p5 cend
% U6 z5 O% w" j: B8 |
3 L1 L- E3 I, m6 o# H6 Gmatlab软件提示‘gg=[gg,p(l)];’这句有问题,但是不懂什么意思,求助前辈们,希望能帮帮忙。& ?& Z  \% p: x7 T8 M, x- U& r$ U+ ~

6 c) r8 B0 v0 ]) Y9 f! `- Y: H* E) x; y* G( w1 I
7 k% i% e2 p. N: B# Z: J

作者: madio    时间: 2014-8-22 10:36
你把数据文件也传上来,要不没法实验,你这个是做什么的程序?出现死循环就一定是while循环出的问题,你可以把某句后面的分号去掉,这样就可以显示一些中间变量的值,你就可以知道哪里出了问题
作者: qiandongdong    时间: 2014-8-22 18:20
是做一个遍历树的程序,不过已经解决了,那个去分号的办法确实不错,谢谢哈~




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5