议案
-loop迭代是独立的如果您在转换时出错为了
- 换来议案
- 砍掉,确保你的议案
-loop迭代是独立的。议案
-loop迭代有没有保证订单,迭代顺序为了
-loops是顺序。还议案
-loop迭代在不同的matlab上执行®并行池中的工人,因此在迭代之间没有共享信息。因此议案
-loop迭代不得依赖于先前迭代的结果。此规则的唯一例外是使用循环中的值累积减少变量。
以下示例使用a生成等效结果为了
- 左边和一个议案
- 右边。尝试Matlab命令窗口中的示例:
清除一种为了i = 1:8 a(i)= i;结尾一种 a = 1 2 3 4 5 6 7 8 |
清除一种议案i = 1:8 a(i)= i;结尾一种 a = 1 2 3 4 5 6 7 8 |
每个元素一种
等于其指数。这议案
-Loop工作原因是每个元素由索引的循环变量确定,不依赖于其他变量。为了
- 带独立任务的乐趣是理想的候选人议案
- 砍伐。
笔记
默认情况下,议案
如果您已经尚未启动,则自动启动并行工人池。议案
使用默认群集配置文件创建池,如果您相应地设置了并行首选项。
在该示例中,数组元素在客户端工作区中可用议案
- 完全一样,与a完全一样为了
-环形。
现在在循环中使用非indexed变量,或者索引不依赖于循环变量的变量一世
。尝试这些示例,并注意值D.
和一世
之后:
清除一种d = 0;我= 0;为了i = 1:4 d = i * 2;a(i)= d;结尾一个d i. a = 2 4 6 8 d = 8 i = 4 |
清除一种d = 0;我= 0;议案i = 1:4 d = i * 2;a(i)= d;结尾一个d i. a = 2 4 6 8 d = 0 i = 0 |
虽然的元素一种
在两个例子中是相同的,值D.
不是。在里面为了
-loop,迭代顺序执行,所以之后D.
它的循环上次迭代中是否具有它的值。在里面议案
但是,迭代并行执行迭代,因此不可能分配D.
循环末尾的定义值。这种情况也适用于循环变量一世
。所以,议案
- 为其定义的行为,以便它不会影响值D.
和一世
在循环之外。它们的值在循环之前和之后保持不变。如果你的变量议案
-loop不是独立的,那么你可能会得到不同的答案为了
-环形。总结,一个议案
-Loop要求每次迭代都与其他迭代无关。所有跟随的代码议案
语句不应依赖于循环迭代序列。
代码分析仪可以帮助诊断循环迭代是否已依赖。该示例中的代码显示了在前一个迭代中定义的迭代:
议案k = 2:10 x(k)= x(k-1)+ k;结尾
然而,在其他情况下,代码分析器无法标记依赖关系。
有关其他常见的帮助议案
问题,见嵌套Parcon和循环和其他Paret要求。