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 个评论

The error is only coming from the line...
price(i)=data(1,i).bidPrice(1,1);
The mlint message is already helping you.

请先登录,再进行评论。

 采纳的回答

Edric Ellis
Edric Ellis 2012-2-20

0 个投票

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 个评论

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.

请先登录,再进行评论。

更多回答(1 个)

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

1 个评论

Hi that does not work, additionally I need it within the loop as I will be plotting as the loop iterations increase.

请先登录,再进行评论。

类别

在 帮助中心 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by