Increasing speed by fixing axis and grid outside of a loop
    4 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Niklas Kurz
 el 31 de Oct. de 2022
  
    
    
    
    
    Comentada: J. Alex Lee
      
 el 2 de Nov. de 2022
            Heres a minimal example of what I mean: Axis and grid are set before the loop 
Pos = [0 0];
axis([0 1 0 1]);
grid on
for i = 1:20
    Pos = [0 0] + i; 
    plot(Pos(1), Pos(2),'x')
    %axis([0 1 0 1]);
    %grid on
    pause(0.1)
end
However this will not fix the axis or the grid. Instead  you have to define it inside the loop.For this minimal example it shouldn't matter, but believe it or not for larger projects I figured the program slacks a little when axis and grid are defined in the loop so how to really fix it outside? 
2 comentarios
Respuesta aceptada
  J. Alex Lee
      
 el 1 de Nov. de 2022
        
      Editada: J. Alex Lee
      
 el 2 de Nov. de 2022
  
      I think what Torsten is getting after is: do you intend to keep the history of all the previous pairs you plotted?
But I'm going to assume you don't, and you just want to replace the plot series while keeping the other axes properties fixed, while many/most/all of them will auto-reset with the default axes property "NextPlot" value set to "replace"
One way to do it
ax = axes("XLim",[0,21],"YLim",[0,21],...
    "XGrid","on","YGrid","on",...
    "NextPlot","add");
% you need NextPlot to be "add" so that the first plot you make doesn't
% undo your axes properties set in the definition, which, now that I think
% about it, is a little weird.
% return the lineseries object from plot so you can reference and alter it
% later
ph = plot(nan,nan,"x");
pos = [0,0];
for i = 1:20
    pos = pos + 1;
    ph.XData = pos(1); % set the XData property of the lineseries object
    ph.YData = pos(2); % set the YData property
    drawnow
end
4 comentarios
Más respuestas (0)
Ver también
Categorías
				Más información sobre Annotations 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!



