I'm sort of confused about the transparency policy in parfor loop. For example, this works:
a=zeros(10,1);parfor i = 1:10 d=2;x=(1:10)'+i;a=mymax(a,x);end
where mymax is a function:
function y=mymax(a,x)b=[a;x];[~,idx]=sort(b,'descend');y=b(idx(1:10));
But this doesn't work (even if I replace mymax(a,x,d) with mymax(a,x,2)):
a=zeros(10,1);parfor i = 1:10 d=2;x=(1:10)'+i;a=mymax(a,x,d);end
where mymax is a function:
function y=mymax(a,x,d)b=[a;x];[~,idx]=sort(b,'descend');y=b(idx(1:10))+d;
I've no idea why this doesn't work… It doesn't violate the transparency policy does it? How can I fix it? Is there any workaround for me to pass the constant d to the function mymax? Thanks a lot in advance!
Best Answer