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

Mate 2u
Mate 2u 2012년 2월 20일
The error is only coming from the line...
price(i)=data(1,i).bidPrice(1,1);
Oleg Komarov
Oleg Komarov 2012년 2월 20일
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

David Allen
David Allen 2012년 6월 11일
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개)

David
David 2012년 2월 20일

0 개 추천

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

댓글 수: 1

Mate 2u
Mate 2u 2012년 2월 20일
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에 대해 자세히 알아보기

태그

질문:

2012년 2월 20일

Community Treasure Hunt

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

Start Hunting!

Translated by