首先,您必须确保禁止命令窗口的任何输出。您可以通过确保以分号 http://www.mathworks.com/access/helpdesk/help/techdoc/matlab_prog/f0-41244.html#f0-45379,避免使用DISP http://www.mathworks.com/access/helpdesk/help/techdoc/ref/disp.html函数来显示数据,并避免使用FPRINTF http://www.mathworks.com/access/helpdesk/help/techdoc/ref/fprintf.html将数据发送到标准输出(即命令窗口)的函数。
其次,确定您想要显示哪种“结果”。如果它是数值向量或矩阵,您可能需要使用UITABLE http://www.mathworks.com/access/helpdesk/help/techdoc/ref/uitable.html对象而不是静态文本框(如建议的阿齐姆对你其他问题的回答 https://stackoverflow.com/questions/957215/how-can-i-use-a-listbox-in-matlab/957944#957944,并假设您拥有较新版本的 MATLAB 之一)。如果它只是几个数值、字符或字符串,那么我建议使用静态文本框。例如:
hList = uicontrol('Style','text','Position',[100 100 200 200]);
set(hList,'String',{'Line 1'; 'Line 2'}); % Displays 2 lines, one string each
vec = rand(3,1); % Column array of 3 random values
set(hList,'String',num2str(vec)); % Displays 3 lines, one number per line
使用此选项,您可能最终会做很多事情字符串操作 http://www.mathworks.com/access/helpdesk/help/techdoc/ref/strings.html.
NOTE:对于静态文本框,如果您在其中放入的文本多于它们能够显示的文本,它们将简单地截断文本。它们不会自动创建滑块来查看整段文本。您要么必须使静态文本框更大,要么调整“字体大小”属性 http://www.mathworks.com/access/helpdesk/help/techdoc/ref/uicontrol_props.html#bqxoilz将静态文本框的值设置为较小的值,或者(更复杂的选项)创建您自己的滑块来调整文本框中显示的内容。
编辑:更复杂的选项......
如果有人感兴趣,我想我会包含一些示例代码,用于制作带有滑块的静态文本框,该滑块控制文本框中显示的内容。有很多不同的方法可以做到这一点,从我能想到的最简单的实现(下面给出)到使用的更复杂的版本嵌套函数 http://www.mathworks.com/access/helpdesk/help/techdoc/matlab_prog/f4-39683.html and 花哨的 OOP 东西 http://www.mathworks.com/products/matlab/object_oriented_programming.html.
首先,您必须将以下两个函数保存为 m 文件:
回调_scrolltext.m
function callback_scrolltext(source,event,hText)
textString = get(hText,'UserData');
nLines = numel(textString);
lineIndex = nLines-round(get(source,'Value'));
set(hText,'String',textString(lineIndex:nLines));
end
update_scrolltext.m
function update_scrolltext(newText,hText,hSlider)
newText = textwrap(hText,newText);
set(hText,'String',newText,'UserData',newText);
nRows = numel(newText);
if (nRows < 2),
sliderEnable = 'off';
else
sliderEnable = 'on';
end
nRows = max(nRows-1,1);
set(hSlider,'Enable',sliderEnable,'Max',nRows,...
'SliderStep',[1 3]./nRows,'Value',nRows);
end
其次,使用以下代码创建 GUI 对象。您可以将“位置”属性设置为您想要的任何内容,也可以使用图形或面板对象的任何句柄来代替hParent:
hParent = figure;
hText = uicontrol('Style','text',...
'Parent',hParent,...
'Units','pixels',...
'Position',[100 100 100 40]);
hSlider = uicontrol('Style','slider',...
'Parent',hParent,...
'Units','pixels',...
'Position',[200 100 10 40],...
'Enable','off',...
'Callback',{@callback_scrolltext,hText});
最后,每次想要更改文本框的文本时,调用更新滚动文本与您想要显示的文本(包含在元胞数组中,就像输入的字符串一样)TEXTWRAP http://www.mathworks.com/access/helpdesk/help/techdoc/ref/textwrap.html是)以及文本框和滑块的手柄。以下是一些可以尝试的示例:
update_scrolltext({'hello'},hText,hSlider);
update_scrolltext({'hello'; 'there'; 'silly'; 'world'},hText,hSlider);
根据您的需要修改代码并享受吧! =)