多次调用同一个函数是不是可以优化?
matlab吧
全部回复
仅看楼主
level 2
WULI313200 楼主
有一个函数,我们姑且称为G,它有n个参量,即G = G(a1,a2,a3,...,an). 现在我需要对这n个参量做遍历,把遍历得到的结果求和。如果ai是1到Ni遍历,那么总共就需要调用G,N1 * N2 * ... * Nn 次。可这样做运算量非常巨大,matlab里有没有什么办法可以简化计算?比如把循环改成矩阵运算之类的。
2022年08月12日 05点08分 1
level 12
不一样吗[阴险]
2022年08月14日 11点08分 2
不一样,Matlab对于矩阵运算是有很大优化的,时间和空间复杂度都会比for循环低很多
2022年08月15日 17点08分
level 7
可以对G函数进行cpu并行加速,减少计算用时,也可以将函数改为矩阵运算,减少运算量,同时可以用gpu加速,进一步减少计算用时
2022年08月15日 17点08分 3
收到,已经把函数改掉了,然后外面加了并行,现在快了一倍的样子。
2022年08月16日 17点08分
@WULI313200 才一倍吗,是不是因为函数每一次循环间会有影响
2022年08月17日 00点08分
@贴吧用户_5NtU5E1 单是把G改成矩阵运算代替循环,效率大概提高了60%,剩下那40%是并行的贡献
2022年08月17日 01点08分
1