Matlab在同一图中动画背景和线

时间:2017-05-25 00:36:19

标签: matlab animation matlab-figure

我试图同时在动态背景上设置一条线的动画,问题是我无法在同一个图中更新两者。如果我为背景设置动画,则不会显示线条。 所以问题是为什么?我在不同的位置尝试没有成功。

如果删除imagesc的部分,则没有问题,并且线条的动画流动

for k = 1:numel(t)
    decay = rand;
    res = decay * background;
    imagesc(x,y,flip(res));
    hold on
    clearpoints(h);
    clearpoints(p);

    addpoints(p,[l,(cosO(k)],[0,cosO(k)]);
    addpoints(h,[r,(senO(k)],[0,senO(k)]);

    drawnow
    hold off
end

固定!创建一个处理程序并在循环内修改CData:

imh = imagesc(x,y,flip(res));
for ...
    imh.CData = flip(res);

end

1 个答案:

答案 0 :(得分:0)

imagesc的调用超出了你的情节。您可以通过仅更改由imagesc表示的图像矩阵(作为'CData'属性)来克服此问题:

for k = 1:numel(t)
    decay = rand;
    res = decay * background;
    if k == 1
        imh = imagesc(x,y,flip(res));
    else
        imh.CData = flip(res);
        % or: set(imh, 'CData', flip(res) ); % in older MATLAB versions
    ...
end