2015-04-17 91 views
3

我将我的系统中的报告以table()命令生成的表的形式保存在matlab中。要显示这些表格,我使用的是disp(myTable)。当我只在外壳中查看表格时这很好。有没有一种简单的方法来显示matlab GUI中的“表”?

不过,现在我要建立一个图形用户界面,显示这些表的情节和其他信息。我发现我可以通过做

set(handles.staticText1, 'String', 'My text! Yay!')显示静态文本GUI元素的字符串。

不过,我想不出转存为表转换成字符串数据的任何简单的方法。

是否有显示GUI表或做我需要手动提取所有从表中的列一个简单的方法?

编辑:好了,我发现储蓄表转换成字符串的方法:

tableString=evalc('disp(table)')

但结果却是一场灾难,看起来一点都不像整齐的格式化字符串我在shell获得。

回答

5

这里是一种使用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 

这是它看起来像按下按钮后:

enter image description here

所以你看,重要的是你放置表格明智,这样它不会出现在其他您的GUI的元素。

希望有帮助!

+1

感谢您快速回答!立即测试! – BoZenKhaa

相关问题