直接运行GUI.FIG文件时会不能运行,但通过.M文件运行就能成功。求解为何不能直接运行.FIG文件。

原文:%---Executesonbuttonpressinpushbutton1.functionpushbutton1_Callback(hObject,eventd... 原文:

% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
set(handles.pushbutton1, 'backgroundcolor','b')
[FileName,PathName] = uigetfile('*.txt','Select the Data file');
file=fullfile(PathName,FileName);
data=load(file);
imdata=imread('tishi.png');
imshow(imdata);
msgbox('数据已成功读取')

错误的提示:
展开
 我来答
依水daiyue
推荐于2018-09-02
知道答主
回答量:8
采纳率:0%
帮助的人:3.4万
展开全部
首先,直接运行.fig文件不会执行m文件中的OpeningFcn和CreateFcn。
OpeningFcn函数中有两句至关重要:
% Choose default command line output for **
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
第二句将handles保存在figure对象的“ApplicationData”的一个域名里,创建了figure自己的handles数据。
由于没有执行OpeningFcn,callback函数中的形参handles就失去了意义。可以在每个子函数前面加一行handles = guihandles( gcbf ) ;将figure句柄赋给handles。
如果程序中用global声明了全局变量,并在OpeningFcn或CreateFcn中赋了初值。则直接打开.fig文件则不能初始化全局变量,其值为最后一次运行时的值

解决方案:建议还是运行m文件或用GUIDE打开fig文件运行。
镭速传输
2024-10-28 广告
作为深圳市云语科技有限公司的一员,我们推出的FTP替代升级方案,旨在解决传统FTP在安全性、效率、稳定性及管理方面的不足。我们的产品通过采用自主研发的Raysync传输协议,实现高效、安全的文件传输,即使在恶劣网络环境下也能确保传输的稳定性... 点击进入详情页
本回答由镭速传输提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式