主要内容

使用parfor-循环减少分配

下面两个例子说明parfor-循环使用约简赋值。减少是一个循环迭代的积累。左边的例子使用x在循环的10次迭代中累积一个和。右边的例子生成了一个连接数组,1:10.在这两个例子中,工作人员迭代的执行顺序并不重要:当工作人员为每个迭代计算单独的结果时,客户端正确地积累和组装最终的循环结果。

X = 0;parforI = 1:10 x = x + I;结束x
X = 55
X2 = [];N = 10;parforI = 1:n x2 = [x2, I];结束x2
X2 = 1 2 3 4 5 6 7 8 9 10

如果循环迭代以不确定的顺序操作,您可能会期望右边示例中的连接序列是非连续的。然而,MATLAB®识别连接操作并产生确定的结果。

下一个尝试计算斐波那契数的示例是无效的parfor的元素的值f在一次迭代中依赖于其他元素的值f在其他迭代中计算。

F = 0 (1,50);F (1) = 1;F (2) = 2;parforN = 3:50 f(N) = f(N -1) + f(N -2);结束

当你完成循环示例时,清空你的工作空间并删除并行工作池:

明确的删除(gcp)

相关的话题