coder.unroll
展开为
复制循环的循环体为每个循环迭代
描述
coder.unroll ()
打开一个为
循环。的coder.unroll
电话前必须立即在一行本身为
循环铺。
而不是生产为
循环在生成的代码中,循环展开产生的一个副本为
为每个循环迭代循环体。在每个迭代中,循环指数成为常数。展开一个循环,代码生成器必须能够确定的界限对- - - - - -
循环。
对于小,紧密的循环,展开可以提高性能。然而,对于大型循环,展开可以显著增加代码生成时间,生成效率低下的代码。
coder.unroll
忽略之外的代码生成。
例子
输入参数
提示
有时,代码生成器铺
为
循环,即使你不使用coder.unroll
。例如,如果一个为
变成一个异构单元阵列或循环索引变长度输入宗量
或varargout
代码生成器铺循环。通过展开循环,代码生成器可以确定为每个循环迭代索引的值。代码生成器使用启发式来确定何时展开为
循环。如果展开的启发式无法识别是有效的,或者循环迭代的数量超过限制,代码生成失败。在这些情况下,您可以通过使用强迫循环展开coder.unroll
。看到非常数的指数变长度输入宗量或varargout for循环。如果一个
为
循环不是之前coder.unroll
,代码生成器使用循环展开阈值来确定是否自动展开循环。如果循环迭代的数量小于阈值,代码生成器铺循环。如果迭代次数大于或等于阈值,代码生成器生成为
循环。默认值的阈值5
。通过修改这个阈值,你可以调整循环展开。更多细节,请参阅展开for循环和parfor-Loops。
扩展功能
版本历史
介绍了R2011a