我收到了这个错误:
Error in ==> APP>pushbutton2_Callback at 109
img=imread(FileName)
当我尝试在FileName
中使用pushbutton2_Callback
时,我收到了提到的错误
FileName
在pushbutton1_Callback
中可变。
答案 0 :(得分:4)
您需要将变量FileName
从一个回调传递给另一个回调。为此,您可以将变量分配到'UserData'
的{{1}}字段。 pushbutton1
下的代码应该类似于:
pushbutton1_Callback
接下来,您需要阅读FileName=uigetfile();
set(handles.pushbutton1,'UserData',FileName);
下的变量:
pushbutton2_Callback
如果要检查结果,可以始终将分号留在行尾。
答案 1 :(得分:1)
有一种通用方法可以使用gui存储数据,以便在回调之间使用。您可以向handle对象添加任意字段,这样就可以放入pushbutton1回调
handles.filename = FileName;
guidata(hObject,handles);
第二行是样板代码,您需要在任何更改句柄结构中的值的回调结束时放置该代码。
现在,您的所有回调都可以访问文件名。在您的特定情况下,在回调2中,您将拥有
img = imread(handles.filename);
当然,您可能希望稍后在另一个函数中使用此图像,因此您也可以将其存储在句柄中
handles.img = img;
guidata(hObject, handles);