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

New to MATLAB?

Variable classification in Parfor loop

Asked by Tristan

Tristan (view profile)

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

Tristan (view profile)

1 Answer

Answer by Sean de Wolski

Sean de Wolski (view profile)

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

Tristan (view profile)

on 26 Jun 2013

Thanks!

Sean de Wolski

Sean de Wolski (view profile)

Contact us