BoZ*_*haa 3 matlab matlab-guide
我以matlab的形式从我的系统中保存报告table().要显示这些表,我正在使用disp(myTable).当我只在shell中查看表时,这很好.
但是,现在我希望构建一个GUI,它将显示这些表以及图表和其他信息.我发现我可以通过静态文本GUI元素显示字符串
set(handles.staticText1, 'String', 'My text! Yay!').
但是,我无法弄清楚将保存为表格的数据转换为字符串的任何简单方法.
是否有一种在GUI中显示表格的简单方法,还是需要手动提取表格中的所有列?
编辑:好的,所以我找到了一种将表保存到字符串中的方法:
tableString=evalc('disp(table)')
但结果是一场灾难,看起来就像我在shell中获得的格式整齐的字符串.
这是一种使用uitable的hack ,它在GUI中创建一个UI表组件."uitable"是从现有表的元素构建的.以下GUI具有按钮,一旦您按下它,就会创建一个UI表并将其放置在指定位置的GUI内.然后你可以玩它.
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
Run Code Online (Sandbox Code Playgroud)
这是按下按钮后的样子:

如您所见,重要的是您明智地放置表格,使其不会出现在GUI的其他元素上.
希望有所帮助!