Matlab图形不会在连续运行中更新

时间:2015-02-13 21:37:18

标签: matlab matlab-figure

我创建了一个matlab图形图,然后绘制了几个矩形。

for i=1:size(rect,2)/2
        rectangle('Position',[rect(i)-1,rect(i+2*size(rect,2)),5,2])
end

现在我想通过模拟时间流逝的for循环来循环它们。

    daspect([1,1,1])

    for t=0:0.1:6.28
        for i=1:size(rect,2)/2
                rectangle('Position',[rect(i)-1-2*sint(t),rect(i+2*size(rect,2))-2*sin(t),5,2])
        end
        pause(0.1)
    end

矩形命令的问题在于t=0,数字很好但是对于t=0.1,新数字与t=0的数字重叠,从而破坏了图形。修复是什么?我甚至没有使用hold on

2 个答案:

答案 0 :(得分:0)

这样的东西应该在绘制下一个矩形之前清除矩形

for t=0:0.1:6.28
    delete(h)
    for i=1:size(rect,2)/2
            h=rectangle('Position',[rect(i)-1-2*sint(t),rect(i+2*size(rect,2))-2*sin(t),5,2])
    end
    pause(0.1)
end

答案 1 :(得分:0)

如果使用findobj查找矩形并将其删除,会出现什么?

for t=0:0.1:6.28
        for i=1:size(rect,2)/2

            hRect = findobj('Type','rectangle')
            delete(hRect)

            rectangle('Position',[rect(i)-1-2*sint(t),rect(i+2*size(rect,2))-2*sin(t),5,2])
        end
        pause(0.1)
    end