主要内容

在中使用对象和句柄帕弗-循环

物体

当你运行一个帕弗-循环时,您可以将广播变量或切片输入变量从客户端发送到worker,或将切片输出变量从worker发送回客户端。这个拯救负载发送给工人或从工人发送的每个对象都必金宝app须支持函数。有关详细信息,请参阅对象的保存和加载过程.

中不支持为对象的切片属性或结构的切片字段赋值金宝app帕弗-循环。

无效的 有效的
s=结构;帕弗i=1:4s.SomeField(i)=i;终止
帕弗i=1:4x(i)=i;终止s=结构(“SomeField”,x);

有关第一级索引约束的详细信息,请参见切片变量.

处理类

可以将句柄对象作为输入发送到帕弗-循环。但是,在循环迭代期间,您对Worker上对象的处理所做的任何更改都不会自动传播回客户端。也就是说,在循环内所做的更改不会在循环后自动反映出来。

要使客户机反映循环后的更改,请将修改后的句柄对象显式分配给帕弗-循环。在下面的示例中,地图是一个切片输入/输出变量。

maps={containers.Map(),containers.Map(),containers.Map()};帕弗ii=1:numel(maps)mymap=maps{ii};%分配给本地副本的输入切片对于jj=1:1000 mymap(num2str(jj))=rand;终止maps{ii}=mymap;%已修改分配给输出切片的本地副本终止

引用函数句柄的切片变量

不能将循环索引作为输入参数直接调用函数句柄,因为无法将此变量与切片输入变量区分开来。如果必须将循环索引变量作为参数调用函数句柄,请使用节日.

下面的示例使用函数句柄和对于-循环。

B=@sin;对于ii=1:100 A(ii)=B(ii);终止

相应的帕弗-循环不允许B引用函数句柄。作为解决方法,请使用节日.

B=@sin;帕弗ii=1:100a(ii)=feval(B,ii);终止

相关话题