Error with parfor loop

Hi there, I am trying to run the following:
INPUT:
parfor i=1:1:5
data(i)=IBMatlab('action','query','symbol','EUR','localSymbol', 'EUR.USD', 'secType', 'cash', 'exchange', 'idealpro');
price(i)=data(1,i).bidPrice(1,1);
end
OUTPUT:
??? Error: The variable data in a parfor cannot be classified. See Parallel for Loops in MATLAB, "Overview".
Any help anybody? WHEN I USE NORMAL FOR LOOP IT WORKS.

2 Commenti

Mate 2u
Mate 2u il 20 Feb 2012
The error is only coming from the line...
price(i)=data(1,i).bidPrice(1,1);
Oleg Komarov
Oleg Komarov il 20 Feb 2012
The mlint message is already helping you.

Accedi per commentare.

 Risposta accettata

Edric Ellis
Edric Ellis il 20 Feb 2012

0 voti

You need to ensure that you're indexing 'data' in a consistent manner inside the PARFOR loop. It should work to make both references either 'data(1,i)' or 'data(i)'.

1 Commento

David Allen
David Allen il 11 Giu 2012
To make this clear, as the help file is poor on this. You need something like this:
z(s).a= ....
z(s).b=.....
This one drove me mad.

Accedi per commentare.

Più risposte (1)

David
David il 20 Feb 2012
Have you tried pre-allocating "data"?
e.g.
data = struct('bidPrice',cell(1,5));

1 Commento

Mate 2u
Mate 2u il 20 Feb 2012
Hi that does not work, additionally I need it within the loop as I will be plotting as the loop iterations increase.

Accedi per commentare.

Categorie

Scopri di più su Loops and Conditional Statements in Centro assistenza e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by