Matlab图总是可见的

时间:2013-04-16 11:31:54

标签: 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;
    plot(A(i,1),A(i,2),'+')

end

感谢。

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

默认情况下,图形必须可见;否则你应该修改这个属性。因此,请尝试查找包含wait的任何代码。 其他选择是尝试figure(gcf)将焦点转移到您想要的数字上。

答案 2 :(得分:0)

声明figure('visible','on')会创建一个图,但您想让现有的一个可见,因此请使用:

set(gcf,'visible','on')

编辑2

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

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

OLD EDIT Parfor和图片(来源“How to see plots during parfor”):

根据消息来源,快速回答是您无法更新parfor内的屏幕输出,但drawnow违反了parfor的目的。因此,你是否真的需要parfor?

但是,请参阅 EDIT 2