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

Matlab graphics do not update in successive runs

我创建了一个 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.

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

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

如何使用 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