2011-04-27 94 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