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的显示窗口.我怎样才能做到这一点?
如果您想要显示数字,而不是绘制它们,您可以选择一些选项.一个非常简单的方法是使用MSGBOX函数打开一个对话框窗口并显示一个字符串.您必须首先使用INT2STR,NUM2STR或SPRINTF等函数将您的数字转换为字符串表示.这是一个例子:
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)
这是图中的样子:
