2

我无法使用 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。

有人会这么好心来帮助我吗?

4

1 回答 1

2

错误是因为您使用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])
于 2011-04-28T00:08:32.003 回答