MATLAB: Rewrite “randsample” function, but a variable is indexed, but not sliced

parallel computingparforrandsample

Hi there. I'm new in Matlab parallel computing and confused by the Classification of Variables.I try to rewrite the function randsample in a simple way as following,
A=rand(1,36);
parfor t=1:n
index=randperm(36,6);
x=A(index); %=randsample(A,6);
......
However,here the matrix A was labeled as a variable indexed but not sliced. How can I slice A? Thanks a lot.

Best Answer

It's OK to have variables that are "indexed but not sliced" - that warning is trying to tell you that you might be transferring more data than necessary. A variable that is "indexed but not sliced" becomes a broadcast variable, and the whole value must be sent to each worker (for sliced variables, each worker only gets sent the portion it needs to operate on).
In your case, "A" is small, so I would ignore the warning.