I am trying to write a function that will update a plot "on the fly". For instance, in the test function: function colorplot x = ones(100,100); for i = 1:100 for j = 1:100 x(i,j)=uint8(255^((i+j)/200)); image(x); colormap(gray) end end MATLAB will run the entire function before displaying the image in the matrix x. I want to get MATLAB to update the plot as soon as it changes a single pixel (or more generally, whenever I tell it to!). Does anyone know how to do this? The only way I have been able to close to getting this to happen is to use the "figure" command right before "image", but this just generates 100*100 images when I only want 1. UPDATE: I found a function drawnow which performs what I want the plot to do, but it is extremely slow. drawnow redraws the whole plot but I am only updating a few pixels. Any ideas?