使用对象和处理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,二世);结束