How can i preallocate memory for sliced output variables in parfor loop?

4 views (last 30 days)
How can i preallocate memory for sliced output variables in a parfor loop? Following is the example mentioned in Matlab Parallel Computing toolbox. The array "b" in the example is the sliced output variable. But, there is no preallocation of memory for "b". Isn't that going to affect the performance of Matlab in parfor loop?
a = 0;
z = 0;
r = rand(1,10);
parfor ii = 1:10
a = ii;
z = z + ii;
b(ii) = r(ii);
end
Thanks.

Answers (1)

Matt J
Matt J on 13 Oct 2013
Edited: Matt J on 13 Oct 2013
Why not just pre-allocate b prior to the parfor loop?
a = 0;
z = 0;
r = rand(1,10);
b=zeros(size(r));
parfor ii = 1:10
....
end,

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by