现在的位置: 首页 > 综合 > 正文

进行GUI的m文件的编辑窗口运行完全正常,在其的.fig运行时程序会报错

2014年02月15日 ⁄ 综合 ⁄ 共 520字 ⁄ 字号 评论关闭

报错信息:??? Attempt to reference field of non-structure array 'mybutn'.

问题分析:

首先,直接运行.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文件运行。

抱歉!评论已关闭.