有没有一种简单的方法来显示matlab GUI中的“表”?
问题描述:
我将我的系统中的报告以table()
命令生成的表的形式保存在matlab中。要显示这些表格,我使用的是disp(myTable)
。当我只在外壳中查看表格时这很好。有没有一种简单的方法来显示matlab GUI中的“表”?
不过,现在我要建立一个图形用户界面,显示这些表的情节和其他信息。我发现我可以通过做
set(handles.staticText1, 'String', 'My text! Yay!')
显示静态文本GUI元素的字符串。
不过,我想不出转存为表转换成字符串数据的任何简单的方法。
是否有显示GUI表或做我需要手动提取所有从表中的列一个简单的方法?
编辑:好了,我发现储蓄表转换成字符串的方法:
tableString=evalc('disp(table)')
但结果却是一场灾难,看起来一点都不像整齐的格式化字符串我在shell获得。
答
这里是一种使用uitable一劈,它创建的UI表组件成GUI.The“uitable”是从现有的表的元件内置的。下面的图形用户界面有一个按钮,一旦你按下它,就会创建一个用户界面表,并将其放置在图形用户界面的指定位置。然后你可以玩它。
function MakeTableGUI
clear
clc
close all
%// Create figure and uielements
handles.fig = figure('Position',[440 400 500 230]);
handles.DispButton = uicontrol('Style','Pushbutton','Position',[20 70 80 40],'String','Display table','Callback',@DispTableCallback);
%// Create table
LastName = {'Smith';'Johnson';'Williams';'Jones';'Brown'};
Age = [38;43;38;40;49];
Height = [71;69;64;67;64];
Weight = [176;163;131;133;119];
BloodPressure = [124 93; 109 77; 125 83; 117 75; 122 80];
handles.T = table(Age,Height,Weight,BloodPressure,'RowNames',LastName);
function DispTableCallback(~,~)
%// Place table in GUI
uitable(handles.fig,'Data',handles.T{:,:},'ColumnWidth',{50},'ColumnName',{'Age','Height','Weight','BloodPressure'},...
'RowName',LastName,'Position',[110 20 300 150]);
end
end
这是它看起来像按下按钮后:
所以你看,重要的是你放置表格明智,这样它不会出现在其他您的GUI的元素。
希望有帮助!
感谢您快速回答!立即测试! – BoZenKhaa