Matlab图形始终可见

Matlab图形始终可见,matlab,matlab-figure,Matlab,Matlab Figure,我写了一个matlab函数,它可以在图形上做很多事情 现在,问题是图形直到程序终止执行才会显示,但我希望图形在程序运行时实时显示,并进行所有修改,始终显示在前台 我怎么能做到figure('visible','on')不会对任何效果排序,也不会使用set()命令 代码段: set(gcf,'visible','on') parfor (i=1:n, 8) if norm(A(i,:))<1 countr=countr+1; end hold on;

我写了一个matlab函数,它可以在图形上做很多事情

现在,问题是图形直到程序终止执行才会显示,但我希望图形在程序运行时实时显示,并进行所有修改,始终显示在前台

我怎么能做到
figure('visible','on')
不会对任何效果排序,也不会使用set()命令

代码段:

set(gcf,'visible','on')
parfor (i=1:n, 8)

    if norm(A(i,:))<1
        countr=countr+1;
    end
    hold on;
    plot(A(i,1),A(i,2),'+')

end
set(gcf、'visible'、'on')
帕弗(i=1:n,8)

如果默认为norm(A(i,:),则图形必须可见;否则,应修改此属性。因此,请尝试查找包含
wait
的任何代码。
另一个选择是尝试
figure(gcf)
将焦点放在您想要的图形上。

我不推荐它,但我认为您需要添加一些
drawnow
语句,它将同步视觉和计算线程。

语句
figure('visible','on')
创建一个新的图形,但您希望使已存在的一个可见,因此请使用:

set(gcf,'visible','on')
编辑2

我无法重现这个问题(可能这个例子不太好):

旧编辑Parfor和图形(源“”):

根据消息来源,快速的答案是您不能在
parfor
中更新屏幕输出,而是使用
drawnow
更新屏幕输出,这与parfor的用途不符。因此,您是否严格需要parfor


不过,请参见我的编辑2

谢谢,现在我使用drawnow获得了所需的结果。不幸的是,它大大减慢了执行速度。。还有其他方法吗?@user2157783这就是我不推荐它的原因,你的计算必须等待图形完成。您不能添加一个计数器,使
drawnow
每10次执行一次。不幸的是,即使使用set(),图形也会在一开始创建并保持在前台,但在算法终止执行之前不会绘制任何图形。当然,您需要在算法中包含该语句。您可以使用
edit yourfunction
访问代码,此时很容易找到一个潜在语句,将图形设置为不可见并注释掉。也许我太模糊了,我会更精确:for循环的每次迭代都会执行一个“plot(something)”语句。我需要的数字站在前台,并在每次迭代升级。现在,我在代码中将set()语句放在for循环之前,但问题仍然存在。另外,顺便说一下,我的代码中没有任何语句可以使图形不可见。。。再次感谢。然后,不要每次刷新数据时都打印:。另外,如果你能发布一段代码,那也会有帮助。我编辑了原始文章,因为在评论中很难引用代码。谢谢不确定它是否真的符合我的目的,但我会做一些关于等待语句的研究。谢谢
A = rand(100,2);
set(gcf,'visible','on')
hold on
parfor (i=1:100, 8)
        plot(A(i,1),A(i,2),'+')
        pause(0.01)
end