I've got ~200,000 polygons to be plotted with fill().
for i=1:size(data,1);
x=data(i,3:2:9);
y=data(i,4:2:10);
f=fill(x,y,data(i,2));
hold on;
end
It works well but takes a bit of time. When I use 'matlabpool open local 4' and change 'for' to 'parfor', I've got no figure output. Any solutions please?

1 件のコメント

Sean de Wolski
Sean de Wolski 2012 年 4 月 18 日
Do you actually expect to be able to differentiate 200000 polygons?

サインインしてコメントする。

 採用された回答

Titus Edelhofer
Titus Edelhofer 2012 年 4 月 18 日

1 投票

Hi,
you should be able to call fill with the corresponding matrices directly, something like
f = fill(data(:, 3:2:9)', data(:, 4:2:10)', data(:,2)');
Titus

2 件のコメント

seb
seb 2012 年 4 月 18 日
Many thanks Titus, it's much quicker as run time is 34s:112s! I really shouldn't have abused for loops.
Titus Edelhofer
Titus Edelhofer 2012 年 4 月 19 日
Hi Seb, your welcome. You might mark the question then as answered, if you think it is ...

サインインしてコメントする。

その他の回答 (1 件)

Edric Ellis
Edric Ellis 2012 年 4 月 18 日

2 投票

Unfortunately, you cannot use a PARFOR loop in this way. The workers cannot create graphics on your client.

1 件のコメント

seb
seb 2012 年 4 月 18 日
Many thanks Edric. Still wondering if there's any other way to speedup this tedious job, without parfor.

サインインしてコメントする。

カテゴリ

ヘルプ センター および 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