主要内容

使用对象和处理parfor循环

对象

当您运行一个parfor环,你可以从客户机发送广播变量或切片输入变量工人,或发送切片输出变量从工人回到客户机。的保存负载必须支持功能为您发送给每个对象或工人金宝app。有关更多信息,请参见保存和加载过程对象

分配一个值对象的分割财产或切片的结构领域中不受支持金宝appparfor循环。

无效的 有效的
s =结构;parfori = 1:4 s.SomeField (i) =我;结束
parfor我= 1:4 x (i) =;结束s =结构(“SomeField”,x);

关于一级索引限制的更多信息,请参阅切变量

处理类

你可以发送处理对象作为输入的身体parfor循环。然而,任何改变,你在循环迭代中处理对象的工人不会自动传回到客户端。,更改内部循环后不会自动反映循环。

使客户反映循环后的变化,明确分配修改后的输出变量的处理对象parfor循环。在接下来的例子中,地图是一个切片输入/输出变量。

地图= {containers.Map (), containers.Map (), containers.Map ()};parfor2 = 1:元素个数地图(地图)关联= {2};%输入块分配给本地副本jj = 1:1000关联(num2str (jj)) =兰德;结束地图{2}=关联;%修改分配给本地副本输出部分结束

切变量引用函数处理

你不能直接调用一个函数处理循环指数作为输入参数,因为这个变量不能区别一个切片的输入变量。如果你必须调用一个函数处理循环索引变量作为参数,使用函数宏指令

下面的示例使用一个函数处理和循环。

B = @sin;2 = 1:10 0 (2)= B (ii);结束

一个相应的parfor循环不允许B引用一个函数处理。作为一个解决方案,使用函数宏指令

B = @sin;parfor2 = 1:10 0 (ii) =函数宏指令(B,二世);结束

相关的话题