启动GUIDE中内置的GUI时出错
17次观看(过去30天)
显示旧的评论
我有一个GUI,我已经工作了一段时间。
它运行得非常好,直到我对GUIDE中的图形做了一些小的更改。
现在,当我试图启动GUI时,我得到以下错误:
???struct2handle值必须是有限的且非nan
错误在==> hgloadStructDbl at 97 h = struct2handle(hgS, parent, flags{:});
错误在==> hgload at 69 [h, OldProps] = hgloadStructDbl(FigData, fullpath, VerNum, LoadAll, overridprops);
==> openfig at 72错误[fig, savedvisible] = hgload(filename, struct('Visible','off'));
错误在==> gui_mainfcn>local_openfig at 286 gui_hFigure = openfig(name, singleton, visible);
错误在==> gui_mainfcn在159 gui_hFigure = local_openfig。gui_Name、gui_SingletonOpt gui_Visible);
错误在==>控制台在43 gui_mainfcn(gui_State, varargin{:});
我也得到类似的错误,当我试图打开指南中的图形文件。
在我向GUI添加两个按钮后,问题出现了。
任何帮助都将非常感激,因为这个问题把我完全难住了。
0评论
答案(4)
丹尼尔Higginbottom
2012年2月28日
我最终解决了这个错误,并发现了它的原因。
在编辑Guide中的GUI时,我缩小了一个包含控件的ui面板,这样我就可以专注于图形的其他方面。在这个尺寸下,GUI上的控件被赋予了高度、宽度和字体大小的NaN属性值。在指南中很容易纠正这一点,但如果你错误地保存了图并关闭了指南,那么这个图就被损坏了,不能运行或打开编辑。
为了解决这个问题,我在hgloadStructDbl的第97行错误处停了下来,检查了结构hgS。这包含GUI中所有项的属性值。我通过挖掘找到了NaN值(这需要相当多的时间,这是一个复杂的数字!),并添加了一些代码行,将这些值替换为有限的值。
如。hgS.children(1)定格(1)定格(4). properties。位置= [0.1,0.1,0.1,0.1]
然后我可以在Guide中打开图形,固定位置,并保存一个新版本。之后,我返回hgloadStructDbl正常。
1评论
近红外光谱卡普兰
2019年8月1日
为我工作!
在"hgloadStructDbl"中,我在行上添加了一个断点:
h = struct2handle(hgS, parent, flags{:});
我使用"assignin"来保存结构和标志:
assignin (“基地”,“GuiStruct”硫化汞)
assignin (“基地”,“旗帜”、旗帜)
将工作空间中的结构和标志保存为.mat文件。
然后我创建了一个图形,并在“GuiStruct”中碾过儿童,直到我发现腐败的儿童。
struct2handle (GuiStruct.children(1)、图)
struct2handle (GuiStruct.children(2),图)
。
struct2handle (GuiStruct.children(7)、图)
第七个孩子犯了一个错误。
所以我从结构中清除它,重新创建GUI,保存它并在指南中打开它。
GuiStruct.children (7) = [];
图= struct2handle(GuiStruct, 0,“转换”);
集(图,“可见”,“上”)
savefig(图,“GUIRestore”)
马修Arthington
2011年12月21日
我还在第97行得到了hgloadStructDbl的错误。如果我在调试模式中跨过我的命令,我会得到错误(Matlab会停止,因为我总是在启用错误时停止,在hgloadStructDbl中的第97行,但它不会告诉我哪里出错了,甚至不会让我知道我输入了一个新函数)。这是我的命令:
[s, r] =系统(“阴谋\ BodePlot.fig”);
如果我没有在调试模式下运行它,那么我就会在命令行上得到消息:“Error Writing Pipe.”,但从Matlab中就没有别的了。这个命令不能正确执行,但是Matlab继续运行。我运行的是Windows 7 Matlab 2010b。
更改我的命令为
打开(“阴谋\ BodePlot.fig”)
已经取代了我想要的功能,但它并没有解决上述问题。