Sorry it was my carelessness. The point is the 'NextPlot' property of the axes. The default value is 'replace'. So to make the previous defined handles kept, it should be changed to 'add'.
Does `imshow` just delete all other objects in the axes?
    7 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Albert Bing
      
 el 21 de Nov. de 2020
  
    
    
    
    
    Editada: Mario Malic
      
 el 21 de Nov. de 2020
            It seems that  imshow just deletes all other objects or handles in the parenting axes. Say I have a script like this
fig = figure;
ax = axes(fig);
text(ax, 0.5, 0.5, 'string');
h0 = findobj(ax, 'Type', 'text');
img = randn(128, 128);
imshow(img); % why is `imshow(ax, img)` illegal?
h = findobj(ax, 'Type', 'text');
h0 is a 1x1 text, but h is empty!
Another wierd behaviour of imshow is that you cannot set the axes in the imshow command, i.e. imshow(ax, img) is not allowed.
Why is imshow so different?
2 comentarios
  Mario Malic
      
 el 21 de Nov. de 2020
				
      Editada: Mario Malic
      
 el 21 de Nov. de 2020
  
			You can also do it that way, or with hold. 
Respuesta aceptada
  Mario Malic
      
 el 21 de Nov. de 2020
        Hello,
To use hold on with handles to axes, this works.
hold(ax, 'on');
To assign image to axes with imshow
imshow(img, 'Parent', ax)
Más respuestas (0)
Ver también
Categorías
				Más información sobre Creating, Deleting, and Querying Graphics Objects 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!

