How do I plot a temporary variable in a parfor loop?
    8 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Guy Nir
 el 9 de Dic. de 2016
  
Hi,
I'm trying to make a surf plot with a parfor loop:
figure();
hold on
view(3)
[x,y,z]=sphere;
h=waitbar(0,'Please wait, generating figure');
for i=1:N
    for r=linspace(.1,15,40) % sphere radius
        clr=colormap(jet(N_unique));
        h=surf(XFoci(i) + r*x,YFoci(i) + r*y,ZFoci(i) + r*z,'facecolor',clr(ic(i),:),'edgecolor','none');
        alpha(h,(1./(r+1)));
    end % for r=linspace(.1,10,40) % sphere radius
end % for i=1:N
Other than the fact that I have to change r to be integer numbers (no problems), I'm not sure how to parallelize the surf ploting using parfor.
Thanks, Guy
0 comentarios
Respuesta aceptada
  Edric Ellis
    
      
 el 12 de Dic. de 2016
        Unfortunately, parallel pool workers are separate MATLAB processes, and they cannot access the same figure handles that your desktop MATLAB client creates. Workers can create graphics, but each worker does so independently, so you cannot have multiple workers collaborate on a figure. After a worker has produced graphical output, the next step is to use print to output it to a file - workers cannot display graphics on-screen.
Ver también
Categorías
				Más información sobre Parallel for-Loops (parfor) en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!