1

我正在用一些 gui 创建一个 gui,当我从一个带有“open menu.fig”的图形中打开一个 .fig 时,它打开得很好,但是当我使用一个按钮来使用“set(handles. text1,'string',"123")" 它不起作用。错误:尝试引用非结构数组的字段。但是当我在 matlab 中而不是从另一个 gui 打开这个图时,它可以正常工作。

4

1 回答 1

0

这有几个可能的原因。显然,当您调用 "set(handles.text1,'string',"123")" 时,handles.text1 不存在。我猜你这里没有正确的句柄......

句柄结构仅包含其自身元素的句柄(嗯,默认情况下.. 如果您愿意,可以附加任何您需要的内容)

要获取另一个图形的句柄,您必须直接找到图形或元素的句柄。您可以按照此处的说明执行此操作:

我如何在 matlab 中获取所有开放图形的句柄

在你的情况下

figHandles = findall(0,'Tag','text1');

会有帮助,但前提是这个标签只有一个元素!

如果您有另一个图形的句柄(myFigure,您可以使用:

figHandles = findall(myFigure,'Tag','text1');

你也可以使用

output = open("menu.fig")

直接获取新图形的句柄->

figHandles = findall(output ,'Tag','text1');

会做的工作:)

于 2013-08-05T08:01:28.610 回答