我有这段代码,我想并行运行。传递给包含 parfor 循环的函数的参数之一是函数句柄,然后在 parfor 循环内执行该句柄。像这样
[X] = randstep( X,params,roomfun )
...
parfor i=1:N
while ~ok
X(:,i) = A*X(:,i);
if roomfun(X(:,i))
ok = 1;
end
end
end
然而,MATLAB 抱怨 roomfun,说它被索引但没有被切片。当然不是这种情况,因为它是可以在没有其他循环迭代的情况下正常执行的函数。
有什么方法可以告诉matlab这是一个函数,或者我可以通过另一种方式组织循环以使其并行运行?