【问题标题】:Create uitable from dataset从数据集创建 uitable
【发布时间】:2011-04-27 23:14:22
【问题描述】:

我无法使用 matlab 中的 uitable 从数据集创建表,我需要帮助!问题来了:

我创建了一个简单的数据集:

names = {'John'; 'Henri'}
ages = [26; 18];
d1 = dataset({names, 'Name'}, {ages, 'Age'})

然后我尝试用这些数据创建一个 uitable,我写了这一行

uitable('data',double(d1))

但我收到此错误消息:

??? Error using ==> uitable
Data must be a numeric, logical, or cell array

Error in ==> uitable at 56
        thandle = builtin('uitable', varargin{:});

所以我又试了一次

uitable('data',cellstr(d1))

但我收到了这个错误:

??? Error using ==> dataset.cellstr at 32
Error when converting 'Age' to cell array of strings.

Caused by:
    Error using ==> cellstr at 34
    Input must be a string.

我不明白如何从包含数字和字符串条目的数据集创建 uitable。

有人会帮助我吗?

【问题讨论】:

    标签: matlab dataset matlab-uitable


    【解决方案1】:

    错误是因为您错误地使用了uitable。这是一个说明如何操作的最小示例。

    dataCell={'John',26;'Henri',18};%# store data as a cell
    colNames={'Name','Age'};%# names for each column of data
    
    uitable('Data',dataCell,'ColumnName',colNames);
    

    这应该会给你一个看起来像这样的整洁的桌子

    编辑

    要回答您在下面的评论,如果您像示例中那样从单元格和数组创建数据集,那么您可以直接将两者组合到一个单元格中

    dataCell=[names,num2cell(ages)];
    

    并按上述方式进行。如果您已经将d1 作为数据集,可能不是您创建的,那么您可以从中创建一个uitable

    uitable('Data',[d1.Name,d1.Age])
    

    【讨论】:

    • 感谢您的回答。你的建议很完美,但我有一个 1255 行的数据集数组,我无法将它转换为单元格数组。是否可以制作相同的东西但将集合保留为数据集?谢谢
    猜你喜欢
    • 1970-01-01
    • 2020-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-16
    • 2019-10-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多