2011-04-27 62 views
2

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

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

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

然后I'have试图建立一个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。

有人会帮助我吗?

回答

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); 

这应该给你一个整洁的表看起来像这样

enter image description here

编辑

下面来回答你的评论,如果你是从一个单元创建的数据集和一个数组,如你的例子,那么你可以直接将两者合并为一个单元格,因为

dataCell=[names,num2cell(ages)]; 

并如上所述进行。如果你已经有d1作为一个数据集,也许不是你创建的,那么你可以创建一个uitable作为

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

谢谢你的答案。 你的建议是完美的,但我有一个1255行数据集数组,我不能在单元格数组中进行转换。是否有可能做出相同的事情,但保持作为一个数据集?谢谢 – anto 2011-04-28 05:42:33