2015-04-17 111 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

相關問題