有没有一种在matlab GUI中显示"table"的简单方法?

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中获得的格式整齐的字符串.

Ben*_*_11 5

这是一种使用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的其他元素上.

希望有所帮助!