注册 登录
编程论坛 Matlab

求助:关于对象句柄的参数传递问题

ost 发布于 2007-10-14 00:22, 1627 次点击

%欲实现功能:设计guide界面,想将打开的图像和处理后的图像分别显示,指定它们在同一个figure的两个不同坐标系里面。
下面是我编写的函数文件,但是发现会出错:

%GUI调用的callback函数
function guifcn(action)
global I
switch action
%打开图像文件
case 'im_open'
[filename,filepath]=uigetfile('*.bmp','Select a picture!')
if ~isequal(filename,0)
url=[filepath,filename];

%==============================================================
%运行会出错的语句
h1=findobj('tag','axes1');%
axes(h1); %系统提示出错的地方.(第一次打开文件时正常,再次打开就会显示错误,不能打开新的图像)

% 提示信息如下:
% ??? Error using ==> guifcn im_open
% Error using ==> axes
% Invalid object handle.

%假如将以上语句改为用subplot,则正常
% subplot(1,2,1)
%==============================================================
case 'im_save'
[FileName,PathName]=uiputfile('*.bmp','Save file','')
string=[PathName,FileName];
if isequal(string,0)
imwrite(I,string)
else
return
end
end


不知道是不是句柄参数传递过程中出了问题,请高手指点



[此贴子已经被作者于2007-10-14 0:29:57编辑过]

3 回复
#2
ost2007-10-14 16:28
回复:(ost)求助:关于对象句柄的参数传递问题
有高手在吗?帮忙指点一下
#3
zhangenter2007-10-27 15:18
轴是你自己画上去的吗?
如果说axes(h1)报错,原因应该是句柄无效,你确认一下你的界面上确实有tag是axes1的轴对象,是不是你画上轴对象以后或者在代码里把它的tag改调了?
subplot的话,它会在指定位置创建轴,所以就不出错
#4
ansonjimli2007-11-14 15:44

楼上说得不错,看看tag是不是没有找对,嘿嘿。

1