neuzq 发表于 2007-4-2 12:03

如何实现多重循环?请教

以下是个FORTRAN程序,实现多重循环,目的是在A(5,11)中实现各种求和,如:A(1,1)~A(1,11)求和后大于一个给定的数,则返回重新求和A(1,1)~A(1,10),直到小于这个数为止,不知如何实现matlab转换?

   DO 10 I1=1,MK
      DO 10 I2=1,MK
      DO 10 I3=1,MK
      DO 10 I4=1,MK
      DO 10 I5=1,MK
      DO 10 I6=1,MK
      DO 10 I7=1,MK
      DO 500 I8=1,M
      IF ((I8.EQ.MP).OR.(I8.EQ.MQ)) GOTO 500
      DO 900 I9=1,MQ
      IF (I9.EQ.MP) GOTO 500
      DO 800 I10=1,MK
      DO 700 IN=2,MP
      Z(K)=0.0
      DO 600 IX=5,105,5
    .........

    ......
500   continue
10    continue

xjzuo 发表于 2007-4-3 09:32

由于程序没有给全,只能大概说一下:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
碰到GOTO很多的情况,建议直接用FORTRAN.
一般Matlab可以用while,for实现多重循环,但效率不高.
除非可以"向量化"表达式,一般多重循环还是用FORTRAN较好.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
页: [1]
查看完整版本: 如何实现多重循环?请教