代码在matlab中运行时弹出的数字

时间:2013-11-18 18:28:04

标签: matlab figure

我正在运行一个大型代码,所以我想确保它开始运行时一切正常。我做的一件事是绘制一些数据,看看它们是否有意义。我有几个这样的情节(图(1),图(2)......),所有这些都被埋在不同的'if'句子中。但是我发现在代码运行期间只有一些弹出,其他的只是在代码运行完之后才显示。我检查了所有if语句都是真的。

由于我的代码有点大,我不能把它放在这里。有人能告诉我数字弹出时可能会出现的原因(代码运行期间或完成后)?非常感谢!

1 个答案:

答案 0 :(得分:2)

您可以使用drawnow功能在代码仍在运行时更新您的数字。如果你想让你的数字窗口弹出"弹出"在任何给定时间,您可能还需要明确调用figure(figNum)

请注意,尽管观看您的数据实时更新会很有趣,但这样做可能会导致严重的性能损失。如果你有长时间运行的循环,你可能会考虑只显示每个第N个更新,其中N是10,100,1000或其他一些适当的值:

for iter = 1:1e6
    plot(x,y);
    if ~mod(f0,1000); drawnow; end
end

如果您只是想在开始时将绘图作为一个完整性检查,那么您可以在for循环之外运行代码的第一次迭代,并运行drawnow以确保绘图。然后从第二次迭代开始进入for循环。测试iter==1的优势在于,您不必在每次迭代时都在条件上浪费周期。