文档

展开为了- 环

当代码生成器展开时为了- 环,而不是生产为了- 在生成的代码中,它为每次迭代生成循环主体的副本。对于小而紧的循环,展开可以提高性能。但是,对于大循环,展开可以大大增加代码生成时间并产生效率低下的代码。

代码生成器使用启发式方法来确定何时展开为了-环形。强迫循环展开,使用Coder.unroll。例如:

功能z = call_myloop()%#codegenz = myloop(5);结尾功能b = myloop(n)b = zeros(1,n);coder.unroll();为了i = 1:n b(i)= i+n;结尾结尾

这是循环的生成代码:

z [0] = 6.0;z [1] = 7.0;z [2] = 8.0;z [3] = 9.0;z [4] = 10.0;

控制什么时候为了- 环是独立的,使用Coder.unroll旗帜争论。例如,仅在迭代次数小于10时展开循环。

功能z = call_myloop()%#codegenz = myloop(5);结尾功能b = myloop(n)unroll_flag = n <10;b =零(1,n);coder.unroll(unroll_flag);为了i = 1:n b(i)= i+n;结尾结尾

展开一个为了- 环,代码生成器必须能够确定为了-环形。例如,代码生成失败以下代码,因为n在代码生成时间不知道。

功能b = myloop(n)b = zeros(1,n);coder.unroll();为了i = 1:n b(i)= i+n;结尾结尾

也可以看看

相关话题

这个话题有帮助吗?