请教for循环的优化
用for循环赋值计算需要很长时间,如果能化成矩阵的话,运算就会快得多3个for循环就已经很头痛了,现在碰到6个,有点懵了
请教大家,形如
for x=0:a
for y=0:b
for z=0:c
for x2=0:d
for y2=0:e
for z2=0:f
I=f(x,y,z,x2,y2,z2);
end
end
end
end
end
end
的情况,该如何化简? I=f(x,y,z,x2,y2,z2);是什麽? 楼主的程序过于飘忽,也不完整,完全不知所云。。。所以我只能告诉你,matlab的优势在于矢量化,要大幅度提速就要尽量减少循环,把循环变成矩阵,矢量化的运行。
[ 本帖最后由 ChaChing 于 2009-8-15 00:11 编辑 ] 尽量避免用for!!!!!
回复 板凳 linus22 的帖子
我的意思是,如何把FOR循环去掉,直接用矩阵三个FOR循环的时候,可以把X,Y,Z写成三个矩阵
六个的时候,X,Y,Z,X2,Y2,Z2的矩阵写法,我有点晕了
回复 沙发 ChaChing 的帖子
具体函数形式无所谓我只是想把循环去掉
回复 6楼 sun1993 的帖子
照你说的,三个for循环是怎么处理的?回复 7楼 kakalx 的帖子
用了很笨的方法,就是把x,y,z按照取值顺序写成矩阵比如都取1到3,那么x=;
y=;
Z=;
用一些重复行或列的命令写出来就行了。
呵呵,我说了是很笨的方法了,别笑话我。:@L 碰到6个的,我绕糊涂了。:@Q
有好方法的同学,能不能教教我 说真的, 个人水平专业有限, 还是没清楚LZ的问题!
不懂为何"具体函数形式无所谓"?
回复 6楼 sun1993 的帖子
有具体的函数,是可以根据函数修改参数的回复 9楼 ChaChing 的帖子
不好意思,不是您水平有限,是我没表述清楚我自己再想想,想明白了再报告大家
回复 楼主 sun1993 的帖子
f函数应该是你自己编写的吧?你只要修改你的程序,使它可以接受向量输入就可以把所有的循环都去掉了。
页:
[1]