MATLAB Answers


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:

parfor i=1:20
%analysis here. Yields rt, xo, no
masterData{i,1:4}={name rt xo no};

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,



1 Answer

Answer by Sean de Wolski
on 26 Jun 2013
 Accepted answer

rt = 3;
xo = pi;
no = 2;
name = 'Sean';
parfor i=1:20
  %analysis here. Yields rt, xo, no
  masterData(i,:)={name rt xo no};

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.

  1 Comment

on 26 Jun 2013


Join the 15-year community celebration.

Play games and win prizes!

Learn more
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

MATLAB Academy

New to MATLAB?

Learn MATLAB today!