MATLAB:如何将字符串变量从函数传递到 GUI?

MATLAB : how to pass the string variable from a function to GUI?

例如,我有一个名为 function1 的函数,它有一个变量,比如 str1,它包含一个字符串。

我还有一个使用 MATLAB GUIDE 创建的 GUI,带有名为 textgui 的标签,其中有一个 静态文本 标签 text1

如何将字符串 str1 传递给 GUI,以便当我 运行 GUI 时,静态文本 text1 将显示变量 str1 的字符串?

编辑:function1 将生成字符串 str1 然后调用 GUI textgui 来显示字符串

EDIT2:下面是function1的代码和textgui的图像。

str1 = 'some text here';
textgui; % runs the GUI

当我运行 function1 时,我应该怎么做才能让GUI 中的静态文本显示为str1 包含的字符串?

感谢帮助!

当您设置 str1 的值时,您只想使用此变量更新静态文本对象的 String 属性。

str1 = 'my string';
set(handles.text1, 'String', str1)

如果您的 function1 不是 GUI 的回调,您始终可以使用 findall 找到静态文本对象的句柄并以此方式设置它。

str1 = 'my string';
set(findall(0, 'tag', 'text1'), 'string', str1)

如果您的函数正在初始化 textgui,那么您可以将字符串作为输入参数直接传递给 GUI 函数:

str1 = 'my string';
textgui(str1);

这需要修改GUIDE定义的textgui_OpeningFcn来处理输入参数(存储在varargin中):

function textgui_OpeningFcn(hObject, eventdata, handles, varargin)
    set(handles.text1, 'String', varargin{1})

    % Leave the other stuff that GUIDE sets alone
end