Plot on many figures using cellfun
    4 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Ahmad Gad
 el 9 de Feb. de 2021
  
    
    
    
    
    Comentada: Walter Roberson
      
      
 el 9 de Feb. de 2021
            Hello all,
I have a cell array t and T defined for simplicity as the following:
t = {rand(1,10),rand(1,10)};
T = {rand(1,10),rand(1,10)};
I am trying to plot t against T on two different figures, not a single figure. When I used this,
cellfun(@(x,y) plot(x,y), t,T);
They override each other on a single figure. Is there any way to plot them individually on two figures?
Thanks in advance for the help,
Ahmad Gad
Respuesta aceptada
  Jan
      
      
 el 9 de Feb. de 2021
        
      Editada: Jan
      
      
 el 9 de Feb. de 2021
  
      CELLFUN is not really useful here, because it increases the complexity. Do this with a loop instead:
t = {rand(1,10),rand(1,10)};
T = {rand(1,10),rand(1,10)};
for k = 1:numel(t)
    FigH = figure;
    AxesH = axes(FigH);
    plot(AxesH, t{k}, T{k})
end
If you have any good reasons to hide the details in cellfun():
cellfun(@(x, y) plot(axes(figure), x, y), t, T)
The loop is nicer.
3 comentarios
  Walter Roberson
      
      
 el 9 de Feb. de 2021
				When doing graphics operations in a cellfun() or arrayfun() or structfun(), make sure to use "hold on" unless you are generating a new axes or figure each time (which Jan's code does do.)
Más respuestas (0)
Ver también
Categorías
				Más información sobre Data Type Identification 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!


