所以基本上我有一个GUI,我有一个轴图。
我希望我的图表有一个图像,当我点击计算按钮时,图像会上下移动。有人会指导我如何继续这个吗?使用位置命令?注意,该图对应于具有时间响应图的控制系统的移动。因此,随着系统变得稳定,图像移动将停止(特定位置)。到目前为止,我的图像甚至没有出现在轴上!任何帮助都会在matlab上受到高度赞赏!
for frame=1:1:length(t)
if stop ~= 1
axes(handles.axes5)
cla;
hold on;
if y(frame)<=0
axes(handles.axes5,'position',[3,y(frame)+0.001,3,((y(frame)+1.0000000001))]);
imshow('ball.jpg','position',[3,0.001,3,(1.00000000001)]);
else
axes(handles.axes5,'position',[3,y(frame)+0.001,3,((y(frame)+1.0000000001))]);
imshow('ball.jpg','position',[3,y(frame)+0.001,3,((y(frame)+1.0000000001))]);
end
答案 0 :(得分:0)
我怀疑由于进程繁忙,您的图片没有显示。
如果你有一个在过程中更新的gui,你需要告诉Matlab重绘。您可以通过包含命令
来完成此操作drawnow
更新图像位置后放置。
编辑以移动轴为例进行更新。
d = figure;
ax = axes ( 'parent', d );
I = imread('pout.tif');
imshow ( I, 'parent', ax );
offset = 0.01;
for i=1:1000
position = get ( ax, 'position' );
position(1) = position(1) + offset;
% if image off right hand side of page - change offset
if position(1) + position(3) >=1
offset = -offset;
% if image off left hand side of page - change offset
elseif position(1) <= 0
offset = -offset;
end
set ( ax, 'position', position );
drawnow()
end
关于您的代码,有很多问题要严格解决它:
您需要考虑以下几点: