MATLAB: Variable classification in Parfor loop

Parallel Computing Toolbox

Hi all –
I know this type of question has been asked many times, but I simply can't figure out how to translate my code to work. Very simply: – I have a large cell called "masterData", which merely holds my final data – In a parfor loop, I am performing an analysis that yields three large arrays rt, xo, and no. – I'd like to store the three large arrays in the masterData cell together with the sample name:
masterData=cell(20,1);
parfor i=1:20
%analysis here. Yields rt, xo, no
masterData{i,1:4}={name rt xo no};
end
I get the error "Error: The variable masterData in a parfor cannot be classified." I'm sure this is an easy fix relating to how masterData is populated. Any help is appreciated. Thanks,
Tristan

Best Answer

rt = 3;
xo = pi;
no = 2;
name = 'Sean';
masterData=cell(20,4);
parfor i=1:20
%analysis here. Yields rt, xo, no
masterData(i,:)={name rt xo no};
end
You index into masterData with columns 1:4 and curly braces yet the preallocated cell is a 20x1.
The 1:4 cannot be used because of this:
Form of Indexing. Within the list of indicesfor a sliced variable, one of these indices is of the form i, i+k, i-k, k+i,or k-i, where i is the loopvariable and k is a constant or a simple (nonindexed)broadcast variable; and every other index is a constant, a simplebroadcast variable, colon, or end.