2011-04-27 5 views
2

matlab에있는 uitable을 사용하여 데이터 세트에서 테이블을 만들 수 없으며 도움이 필요합니다! 데이터 세트에서 uitable 만들기

내가 간단한 데이터 세트 생성 : 여기에 문제가있어

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

EDIT처럼

을 보이는 깔끔한 테이블을 제공해야하며, 예와 같이 배열을 만들면 두 셀을 모두 직접 셀로 결합하여

dataCell=[names,num2cell(ages)]; 

위와 같이 진행하십시오. 이미 아마도 당신에 의해 생성되지 않은 데이터 세트로 d1이있는 경우, 당신은

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

로 그에서 uitable을 만들 수는 답변 주셔서 감사합니다. 귀하의 조언은 완벽하지만 1255 행의 데이터 집합 배열이 있으며 셀 배열에서 변환 할 수 없습니다. 세트를 데이터 세트로 유지하면서 동일한 작업을 수행 할 수 있습니까? 고마워 – anto

관련 문제