如何在Matlab中使用set(h,...)更新图像位置?

时间:2016-03-03 14:13:06

标签: matlab animation plot arguments handle

我有一张在Matlab中的图中绘制的图片:

pic=imread('mypic.bmp');
figure(1)
h=image([1 1.2],fliplr([1 1.2],pic)

现在我想使用this question中描述的方法将此图移动到图中的其他位置:

for i=2:3
    indices=[i i+.2];
    set(h,'?1',indices,'?2',fliplr(indices))
end

我需要填写什么而不是?1?2?在引用的问题中,考虑plot命令,他们使用XDataYData

1 个答案:

答案 0 :(得分:1)

图像对象(无论是使用imshowimagesc还是image创建)还有XData and YData properties

xdata = get(h, 'XData');
ydata = get(h, 'YData');

它们指定图像数据的x和y范围。您可以像对待plot个对象一样更改它们。

for k = 2:3
    indices = [k, k+0.2];
    set(h, 'XData', indices, 'YData', fliplr(indices));

    % Be sure to make it so the axes can display it
    set(gca, 'XLim', indices, 'Ylim', indices);
end