parfor shows an empty figure
Show older comments
Hello,
I am trying to use parfor to plot some filled rectangles with the following codes for some data x,y,f and a parameter l, this code works fine on serial for loop, when I tried to do it with parfor, it returns an empty figure, how should I resolve this? Thank you!
figure();
for i = 1:length(f)
if f(i)==1
fill( [x(i) x(i)+l x(i)+l x(i)],...
[y(i) y(i) y(i)+l y(i)+l],[0 91 187]/255,'LineStyle','none');hold on;
end
end
6 Comments
Adam
on 17 Dec 2019
I don't think plotting instructions are supported by parallel processing, though I may be wrong.
J T
on 17 Dec 2019
Adam Danz
on 17 Dec 2019
Could it be that l (bad variable name) is equal to 0? In that case, the patch produced by fill() would have an area of 0 (not visible).
" Btw, why is l a bad variable name"
- l looks like 1. When a human is reading your code, it's very easy to misinterpret y(i)+l as adding 1
- Single character variable names are often used in loops (for i = 1:10) and to represent common variables such as p-values (p = anova1(...)) but in general, it's best to use variable names with more than 1 character.
- When using the editor, if you select a variable you'll notice that all instances of that variable within the same function are highlighted. With a variable name as narrow as l you lose the ability to quickly see all of those instances.
- It's very easy to accidentally type a single-character variable name via a typo. It's much more difficult to accidentally type LValue than l.
J T
on 17 Dec 2019
Answers (0)
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!