Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Variable classification in Parfor loop

Asked by Tristan on 26 Jun 2013

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

0 Comments

Tristan

1 Answer

Answer by Sean de Wolski on 26 Jun 2013
Accepted 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.

http://www.mathworks.com/help/releases/R2013a/distcomp/advanced-topics.html#brdsfkm-1

1 Comment

Tristan on 26 Jun 2013

Thanks!

Sean de Wolski

Contact us