0

我有一个E具有 for 循环的函数,在这个循环中我打开一个图像以使用imshow(im,'Colormap',jet)然后M调用另一个函数,在 fnM中有另一个循环,我正在使用linematlab 函数在图像上绘制点im。问题是,如果我在M没有从 fn 调用的情况下运行 fn E“这意味着该E函数只有一次迭代,那么该图形会非常快速且实时地出现。但是如果我从 fn 调用它E在我退出之前图像不会显示,因为循环有大量迭代,其中只绘制了图像的一部分。我不知道如何使图像实时显示每次迭代的更新?所以如果有人可以建议。这两个函数的代码很大所以我不能贴出来。

这是我的代码示例:

%function E
function E
for..
M(D)
end

%function M
function M(D)
imshow(D,'Colormap',jet)
for..
for..
line([i],[j],'Marker','p','color','g','linewidth',1,'MarkerSize',7)
end
end
4

2 回答 2

2

不要使用pause,使用drawnow,它会显式刷新图形队列。如果您愿意,您可以使用drawnow('expose'),这可能会更快,但在快速循环中调整窗口大小等操作可能不起作用。

于 2013-08-19T18:46:38.300 回答
0

您可以使用 for 循环中暂停的少量时间来提供渲染时间。例如,在调用 function 之后,在循环中使用 pause(.1) M

于 2013-08-19T16:26:41.230 回答