#matlab #dataset #matlab-uitable
#matlab #набор данных #matlab-uitable
Вопрос:
Я не могу создать таблицу из набора данных, используя пользовательский интерфейс в matlab, и мне нужна помощь! Вот в чем проблема:
Я создал простой набор данных :
names = {'John'; 'Henri'}
ages = [26; 18];
d1 = dataset({names, 'Name'}, {ages, 'Age'})
затем я попытался создать пользовательский интерфейс с этими данными и написал эту строку
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.
Я не могу понять, как я могу создать пользовательский интерфейс из dataset, содержащий как числовые, так и строковые записи.
Кто-нибудь будет так добр, чтобы помочь мне?
Ответ №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])
Комментарии:
1. Спасибо за ответы. Ваш совет идеален, но у меня есть массив dataset из 1255 строк, и я не могу преобразовать его в массив ячеек. Возможно ли сделать то же самое, но сохранить set в виде dataset? спасибо