- #1
Euclid
- 214
- 0
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?
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?
Last edited: