24小时热门版块排行榜    

查看: 2348  |  回复: 5

btx97

金虫 (小有名气)

[交流] 避免多层嵌套循环的方法有哪些。 已有3人参与

刚开始编程序,对那些多层的循环嵌套有些无力啊。一不小心就出来好几层的嵌套,大侠们出来指点指点啊。要是一边讲方法一边有例子就完美了,FORTRAN最佳,别的语言也行,重在交流,讲些理论上的方法也成。我先说说自己想到的关于并乘的一点点改进,当是抛砖引玉了。原程序代码:
CODE:
do i=1,3     
    do j=1,3        
         do k=1,3            
              do l=1,3                  
                 c(i, j, k, l)=a(i, j)*b(k, l)            
end do;end do;end do; end do !讨论里只为减少行数。

可以改为:
CODE:
do i=1,3; do j=1, 3
c(i, j, :, :)=a(i, j)*b
end do; end do

多多参与,多多参与啊!
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军


小木虫: 金币+0.5, 给个红包,谢谢回帖
matlab可以向量化避免多重循环
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
2楼2012-07-18 02:59:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

btx97

金虫 (小有名气)

引用回帖:
2楼: Originally posted by libralibra at 2012-07-17 19:59:26
matlab可以向量化避免多重循环

谢谢,也有别人提过向量化,看来有必要去了解下。
3楼2012-07-18 12:26:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)


小木虫: 金币+0.5, 给个红包,谢谢回帖
其实你前面的代码就是向量化啊,呵呵……

这个似乎是 Fortran 90 后才提供的
4楼2012-07-18 14:50:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

btx97

金虫 (小有名气)

引用回帖:
4楼: Originally posted by snoopyzhao at 2012-07-18 07:50:37
其实你前面的代码就是向量化啊,呵呵……

这个似乎是 Fortran 90 后才提供的

歪打正着。什么标准没关系,只要一般compiler支持就行。:-)

[ Last edited by btx97 on 2012-7-18 at 09:00 ]
5楼2012-07-18 15:54:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

田山东

捐助贵宾 (著名写手)


小木虫: 金币+0.5, 给个红包,谢谢回帖
讨论太少。。正要学习矢量化呢
everythinghasitsseason.enjoyyourlife.
6楼2012-12-05 20:09:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 btx97 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见