如何在MATLAB的GUI中将函数显示到显示窗口?

Ben*_*sen 2 matlab user-interface

我有一个函数sumsurface,我在下面的代码中使用它来在命令窗口中显示某些值:

if sumsurface(i) < .01 && sumsurface(i) > -.01

    disp(sumsurface(i)); 

    disp(pH(i));

end
Run Code Online (Sandbox Code Playgroud)

但是,我反而要显示sumsurface(i)pH(i)对GUI的显示窗口.我怎样才能做到这一点?

gno*_*ice 5

如果您想要显示数字,而不是绘制它们,您可以选择一些选项.一个非常简单的方法是使用MSGBOX函数打开一个对话框窗口并显示一个字符串.您必须首先使用INT2STR,NUM2STRSPRINTF等函数将您的数字转换为字符串表示.这是一个例子:

sumsurface = rand;  %# Pick a random number
pH = rand;          %# Pick another random number
str = {['sumsurface = ' num2str(sumsurface)]; ...
       ['pH = ' num2str(pH)]};  %# Creates a 2-by-1 cell array of strings
msgbox(str);
Run Code Online (Sandbox Code Playgroud)

这是生成的对话框:

替代文字

您也可以使用UICONTROL函数自己创建静态文本框.如果要将文本框插入现有GUI,这将是更好的选择.以下是如何初始化GUI的图形和文本框的示例:

hFigure = figure('Position',[300 300 150 70],...
                 'MenuBar','none');
hText1 = uicontrol('Style','text','Parent',hFigure,...
                   'Position',[10 40 130 20],...
                   'BackgroundColor',[0.7 0.7 0.7]);
hText2 = uicontrol('Style','text','Parent',hFigure,...
                   'Position',[10 10 130 20],...
                   'BackgroundColor',[0.7 0.7 0.7]);
Run Code Online (Sandbox Code Playgroud)

现在,您可以使用文本框的句柄将String属性更新为您要显示的内容:

set(hText1,'String',['sumsurface = ' num2str(rand)]);
set(hText2,'String',['pH = ' num2str(rand)]);
Run Code Online (Sandbox Code Playgroud)

这是图中的样子:

替代文字